不是专门做服务器运维的,所以对于玩服务器反向代理等活,基本上都是现场google,比如对apache设置反向代理,一般是如下做
将httpd.conf中带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
接下来几种方法随便怎么用都是生效的,这是现从网上拷贝的,具体自己改
方法一:
<VirtualHost *:80> ServerAdmin xxx@yourdomain.com ServerName www.yourdomain.com DocumentRoot /srv/www/htdocs ServerSignature On DirectoryIndex index.php index.html index.htm ProxyRequests Off ProxyPreserveHost On ProxyPass / http://your.internalserver.local:8080/ ProxyPassReverse / http://your.internalserver.local:8080/ </virtualhost>
方法二:
ProxyPass /Test http://127.0.0.1:8080/ ProxyPassReverse /Test http://127.0.0.1:8080 <proxy http://127.0.0.1:8080> AllowOverride None Order Deny,Allow Allow from all </proxy>
其中方法一有时候还可以做到单独的虚拟路径文件里面去,方便集中管理,这点各种服务器的做法是一样的,include进来即可
但是这一次我发布到centos6上的时候却一直报类似如下的错误:
[Wed Dec 10 20:30:51 2012] [error] proxy: HTTP: disabled connection for (127.0.0.1)
而我在其它linux平台下测试都是不会出现这种情况的,如archlinux,原因就不深究了,还是centos改了一个配置而已,我们把它改回来吧
sudo /usr/sbin/setsebool -P httpd_can_network_connect 1
重启httpd,测试,成功