Apache负载均衡配置

使用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

你可能感兴趣的:(Apache负载均衡配置)