在我的应用程序中,我使用以下重写规则:
RewriteRule ^/ajax(.*) http://api.externalserver.com/$1 [P,QSA,L]
现在的问题是我的公司networking要求我使用HTTP代理进行外部互联网连接。
说实话,这是行不通的:
curl -v http://api.externalserver.com/login
但是这个工作:
curl -v -x 11.22.11.22:8585 http://api.externalserver.com/login
我如何让Apache使用公司代理来处理外部networking请求?
我想你会想启用mod_proxy_http ,并设置:
ProxyRemote * http://11.22.11.22:8585
在虚拟主机configuration中的某处。
你有没有尝试HTTP隧道,通过proxytunnel或开瓶器?
您需要为您的Apacheconfiguration一个虚拟主机,并将其用作远程代理。
也许适应这可以帮助你: http : //dag.wieers.com/howto/ssh-http-tunneling/
我想你正在寻找的是mod_proxy和mod_proxy_http具体:
您可以在透明模式下安装SQUID代理,以代理从本地机器到互联网的所有stream量。
首先添加iptables规则
iptables -t nat -A OUTPUT -p tcp --dport 5555 -j DNAT --to 127.0.0.1:3128
这将redirect所有传出的http连接到本地鱿鱼。 然后根据本指南configuration鱿鱼,并进行configuration
cache_peer 11.22.11.22 parent 8585 0 no-query default never_direct allow all
就这样。 所有到端口80的出站stream量都将通过您的组织代理
设置ProxyRemote并重新启动httpd ,如果得到“[error](13)权限被拒绝:proxy:HTTP:尝试连接失败”,则还需要执行以下操作:
setsebool -P httpd_can_network_connect=1