win 下 apache 实现负载均衡

1、打开apache的配置文件httpd.conf,打开如下项
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/
浏览器上会循环反复的显示site1和site2。(*在两个虚拟主机下创建index.html,分别写入site1和site2用于测试)
 
(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/
可以很明显的看到,前面四次是访问的site1站,后面一次访问的是site2。
这样就可以配置不同的权重了。
 
(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。
原文地址:https://www.cnblogs.com/jkko123/p/6294618.html