1.安装APCHE 2.2应用服务器
2.安装JBOSS 7.X
以上两步省略
找到APACHE安装目录
${yourDIR}\Apache Software Foundation\Apache2.2\conf
修改 httpd.conf 文件,httpd是apache的主程序,基本对apache的配置都在这个文件里进行
a.将负载均衡需要使用的模块都打开(去掉#号即可),如下:
mod_headers.so
mod_proxy.so
mod_proxy_balancer.so
mod_proxy_connect.so
mod_proxy_http.so
如图是修改差异对比
继续往httpd.conf增加内容,首先增加 session sticky 设置
(使用session sticky 可以使访问的session 保存在本地cookie, 这样session实际上是访问同一台机器,不会因页面跳转而导致session丢失)
Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
设置 balancer 成员与均衡的条件和权重,ProxyRequests Off 设置不要需要代理,将其关闭。
ProxySet lbmethod设置以什么作为负载均衡的权衡,
lbmethod有以下三种取值方式:
lbmethod=byrequests 按照请求次数均衡(默认)
lbmethod=bytraffic 按照流量均衡
lbmethod=bybusyness 按照繁忙程度均衡(总是分配给活跃请求数最少的服务器)
ProxyRequests Off
<proxy balancer://SC>
BalancerMember http://192.168.0.171:8020 loadfactor=1 route=server1
BalancerMember http://192.168.0.171:8080 loadfactor=1 route=server2
BalancerMember http://192.168.0.27:8020 loadfactor=1 route=server3
ProxySet lbmethod= bybusyness
ProxySet stickysession=ROUTEID
</proxy>
设置虚拟主机,设置反向代理,让所有请求都来自一个虚拟的主机。
<VirtualHost *:80>
ProxyPass / balancer://SC/
ProxyPassReverse / balancer://SC/
</VirtualHost>
如图是对这两个指令的解释。
最后设置 balancer-manager,加上它后,你可以通过 页面对负载均衡情况了如指掌。
地址:http://serverIp/balancer-manager
<Location /balancer-manager>
SetHandler balancer-manager
Order Allow,Deny
Allow from all
</Location>
备注:使用sessionsticky可以使session 附着在一个服务器上,一旦该服务器宕机了,该session会丢失。
但可以重新登录,附着到另一台正常运行的服务器上。这种附着做法只在session 存储的信息不太重要时可以这样做。
如果要做到session 不丢失,只得使用session同步机制了,此处不再描述。
国人翻译的apache文章:
apache官网文章: