1、环境配置说明:
代理服务器域名:ap.proxy
web server 1 ip:192.168.195.18 port:80
web server 2 ip:192.168.195.19 port:80
backup server ip:192.168.195.20 port:80
2、确认开启模块:mod_proxy, mod_proxy_balancer, mod_proxy_http
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
(可通过指令开启:a2enmod proxy proxy_http proxy_balancer)
3、简单反向代理设置:
<VirtualHost *:80>
ServerAdmin admin@admin.com
ServerName ap.proxy
ProxyRequests Off
ProxyMaxForwards 100
ProxyPreserveHost On
ProxyPass / http://192.168.195.18/
ProxyPassReverse / http://192.168.195.18/
<Proxy *>
Order Deny,Allow
Allow from all
</Proxy>
</VirtualHost>
4、反向代理实现负载均衡:
<VirtualHost *:80>
ServerAdmin admin@admin.com
ServerName ap.proxy
ProxyRequests Off #开启反向代理
Proxypass / balancer://proxy/
<Proxy balancer://proxy>
Order Deny,Allow
Allow from all
BalancerMember http://192.168.195.18 loadfactor=3 #web server 1, loadfactor--负载比例分配
BalancerMember http://192.168.195.19 loadfactor=1 #web server 2, loadfactor--负载比例分配
BalancerMember http://192.168.195.20 status=+H #backup server
#负载分配算法
#lbmethod=byrequests 按照请求次数均衡(默认)
#lbmethod=bytraffic 按照流量均衡
#lbmethod=bybusyness 按照繁忙程度均衡(总是分配给活跃请求数最少的服务器)
ProxySet lbmethod=bytraffic
</Proxy>
</VirtualHost>
更多设置项:请参考apache手册……
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=另一篇文章-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
环境是Ubuntu 9.04, 首先当然是安装Apache2。
1. 进入mod_availables下拷贝proxy.conf, proxy.load, proxy_http.load到mod_enables下
2. 配置:
编辑proxy.conf:
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /foo http://foo.example.com/bar
ProxyPassReverse /foo http://foo.example.com/bar
只需要对应的修改上述的url即可。如果需要使用二级代理则使用ProxyRemote命令。具体的说明可以参见:
http://man.chinaunix.net/newsoft/Apache2.2_chinese_manual/mod/mod_proxy.html