使用mod_proxy 配置Apache负载均衡
1.安装apache
./configure --prefix=/usr/local/apache2 –enable-so
make && make install
2.添加相关模块
cd modules/proxy/
/usr/local/apache2/bin/apxs -i -a -c mod_proxy.c proxy_util.c
/usr/local/apache2/bin/apxs -i -a -c mod_proxy_balancer.c
/usr/local/apache2/bin/apxs -i -a -c mod_proxy_http.c
mod_proxy提供代理服务器功能,mod_proxy_balancer提供负载均衡功能, mod_proxy_http让代理服务器能支持HTTP协议
在/usr/local/apache2/conf/httpd.conf中会添加如下
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
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
3.配置负载均衡的策略
一轮询均衡策略的配置
ProxyRequests Off
ProxyPass /test balancer://mycluster/
ProxyPassReverse /test balancer://mycluster/
<Proxy balancer://mycluster>
BalancerMember http://192.168.0.51/haitianoa/
BalancerMember http://192.168.1.51/haitianoa/
</Proxy>
ProxyPass /test balancer://mycluster/ ,其中"ProxyPass"是配置虚拟服务器的命令,
”/“ 代表发送WEB请求的URL前缀,”balancer://mycluster/“ 表示要配置负载均衡
,"mycluster"代表负载均衡名,BalancerMember 及其后面的URL表示要配置的后台服
务器,其中URL为后台服务器请求时的URL,在这里要用/test而不是/,因为在这里用/会和documentroot冲突,因为监听的都是80端口
简明说法就是后台两台服务器轮流接收请求
二按权重分配均衡策略的配置
ProxyRequests Off
ProxyPass /test balancer://mycluster/
ProxyPassReverse /test balancer://mycluster/
<Proxy balancer://mycluster>
BalancerMember http://192.168.0.51/haitianoa/ loadfactor=4
BalancerMember http://192.168.1.51/haitianoa/ loadfactor=1
</Proxy>
参数”loadfactor”表示后台服务器负载到由Apache发送请求的权值,该值默认为1,可
以将该值设置为1到100之间的任何值。
简明说法就是如果有5次请求,有四次发个192.168.0.51,有一次发给192.168.1.51
三权重请求响应负载均衡策略的配置
ProxyRequests Off
ProxyPass /test balancer://mycluster/ lbmethod=bytraffic
ProxyPassReverse /test balancer://mycluster/
<Proxy balancer://mycluster>
BalancerMember http://192.168.0.51/haitianoa/ loadfactor=4
BalancerMember http://192.168.1.51/haitianoa/ loadfactor=1
</Proxy>
参数“lbmethod=bytraffic”表示后台服务器负载请求和响应的字节数,处理字节数的
多少是以权值的方式来表示的。 “loadfactor”表示后台服务器处理负载请求和响应字
节数的权值,该值默认为1,可以将该值设置在1到100的任何值。
简明说就是如果有5M的流量请求,有4M发个192.168.0.51,有1M发给192.168.1.51
lbmethod可能的取值有:
lbmethod=byrequests 按照请求次数均衡(默认)
lbmethod=bytraffic 按照流量均衡
lbmethod=bybusyness 按照繁忙程度均衡(总是分配给活跃请求数最少的服务器)
访问http://192.168.15.124/test 会按照策略访问到http://192.168.0.51/haitianoa/ 或者http://192.168.1.51/haitianoa/
<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
Allow from all
</Location>
添加以上内容访问http://192.168.15.124/test/balancer-manager 可以监测负载均衡的情况
http://blog.csdn.net/paulluo0739/archive/2008/04/09/2269052.aspx
http://koda.javaeye.com/blog/465061
http://blog.51yip.com/apachenginx/873.html