1、打开apache的配置文件httpd.conf,打开如下项
虚拟主机的配置如下:
浏览器上会循环反复的显示site1和site2。(*在两个虚拟主机下创建index.html,分别写入site1和site2用于测试)
虚拟主机的配置如上,这里就不拷贝了。
可以很明显的看到,前面四次是访问的site1站,后面一次访问的是site2。
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
2、apache的负载均衡的三种部署方式:
(1)、轮询均衡策略
打开httpd.conf,文件尾部加上如下代码:
#告诉apache使用反向代理 ProxyRequests Off #配置工作在集群中的节点列表 <Proxy balancer://mycluster> BalancerMember http://www.site1.com BalancerMember http://www.site2.com </Proxy> # ProxyPass是配置虚拟服务器的命令 # /表示发送web请求的URL前缀 # balancer表示要配置负载均衡 # mycluster表示负载均衡名 # 必须以/结尾 ProxyPass /site balancer://mycluster/
<VirtualHost _default_:80> DocumentRoot "D:/wwwroot" ServerName localhost ErrorLog "logs/error.log" CustomLog "logs/access.log" common </VirtualHost> <VirtualHost *:80> DocumentRoot D:/wwwroot/site1 ServerName www.site1.com </VirtualHost> <VirtualHost *:80> DocumentRoot D:/wwwroot/site2 ServerName www.site2.com </VirtualHost>
配置好后,我在浏览器中访问
http://localhost/site/
(2)、按权重分配均衡策略
给 BalancerMember 加上 loadfactor 参数即可,取值在1-100。
#告诉apache使用反向代理 ProxyRequests Off #配置工作在集群中的节点列表 <Proxy balancer://mycluster> BalancerMember http://www.site1.com loadfactor=4 BalancerMember http://www.site2.com loadfactor=1 </Proxy> # ProxyPass是配置虚拟服务器的命令 # /表示发送web请求的URL前缀 # balancer表示要配置负载均衡 # mycluster表示负载均衡名 # 必须以/结尾 ProxyPass /site balancer://mycluster/
配置好后重启apache,然后访问上面的
http://localhost/site/
这样就可以配置不同的权重了。
(3)、负载分配算法
负载均衡会尽量让各个服务器接受的请求次数满足预设的比例。如果要改变算法,可以使用 lbmethod 属性。
lbmethod可能的取值有:
lbmethod=byrequests 按照请求次数均衡(默认)
lbmethod=bytraffic 按照流量均衡
lbmethod=bybusyness 按照繁忙程度均衡(总是分配给活跃请求数最少的服务器)
#告诉apache使用反向代理 ProxyRequests Off #配置工作在集群中的节点列表 <Proxy balancer://mycluster> BalancerMember http://www.site1.com loadfactor=4 BalancerMember http://www.site2.com loadfactor=1 </Proxy> # ProxyPass是配置虚拟服务器的命令 # /表示发送web请求的URL前缀 # balancer表示要配置负载均衡 # mycluster表示负载均衡名 # 必须以/结尾 ProxyPass /site balancer://mycluster/ # 按照流量均衡 ProxySet lbmethod=bytraffic
(4)、热备份
ProxyRequests Off <Proxy balancer://mycluster> BalancerMember http://www.site1.com BalancerMember http://www.site2.com status=+H </Proxy> ProxyPass /site balancer://mycluster/
请求总是流向site1,一旦site1挂掉, apache会检测到错误并把请求分流给site2。apache会每隔几分钟检测一下site1的状况,如果site1恢复,就继续使用site1。
版权声明:博主文章,可以不经博主允许随意转载,随意修改,知识是用来传播的。