最近在做的项目中有这样的需求,就是要在服务器上做一个proxy到另外一个内网机器的服务上,当然这个最多想到的就是nginx,因为nginx在proxy配置上比较简单,关键也是我会配置。但是偏偏那个服务器安装的apache,所以今天又学习了下apache中proxy的配置。
一般apache的这些功能我们在编译的时候都是以模块的形式加入的。所以我这里先是看了我的apache中有没有这个模块,结果没有,那么就需要重新编译一下这个模块:
./configure –prefix=/usr/local/apache2 –enable-so –enable-rewrite=shared –enable-proxy=shared
make
把proxy编译成模块,让后再把配置文件加入proxy的配置。
LoadModule proxy_module modules/mod_proxy.so #必须的模块
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
ProxyRequests off
ProxyVia on
ProxyPass / http://www.soso.com/ #把所有的请求proxy到http://www.soso.com/下面。
这样就可以做到对这个文件夹目录下的所有的请求转到http://www.soso.com/这里,包括后面的参数。
比如:http://127.0.0.1/index_302.shtml?test=33 则会转到http://www.soso.com/index_302.shtml?test=33这里,当然你看到的url仍然还是http://127.0.0.1/index_302.shtml?test=33