configurationApache以使用外部代理进行Internet连接

在我的应用程序中,我使用以下重写规则:

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具体:

http://httpd.apache.org/docs/2.2/mod/mod_proxy_http.html

您可以在透明模式下安装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