利用apache来做集群,实现负载均衡

举报
黄啊码 发表于 2022/06/28 22:31:08 2022/06/28
【摘要】 一,查看有没有安装过mod_proxy之类的东西 [zhangy@BlackGhost ~]$ /usr/local/apache2/bin/httpd -l 如果没有发现mod_proxy,我们就到apache安装目录下的modules里面看看有没有mod_proxy.so文件,如果都没有,则说明没有加载负载均衡的模块 二,...

一,查看有没有安装过mod_proxy之类的东西

[zhangy@BlackGhost ~]$ /usr/local/apache2/bin/httpd -l

如果没有发现mod_proxy,我们就到apache安装目录下的modules里面看看有没有mod_proxy.so文件,如果都没有,则说明没有加载负载均衡的模块

二,安装mod_proxy,proxy_balancer_module等


进入apache的解压目录,就是你从网上下载下来的压缩文件,然后解压产生的目录。

cd   apache的解压目录/modules/proxy

[root@BlackGhost proxy]# /usr/local/apache2/bin/apxs -c -i mod_proxy.c proxy_util.c

注意:上面如果不加proxy_util.c的话,LoadModule proxy_module modules/mod_proxy.so会报错的,提示你找不到mod_proxy.so文件

[root@BlackGhost proxy]# /usr/local/apache2/bin/apxs -c -i mod_proxy_balancer.c

[root@BlackGhost proxy]# /usr/local/apache2/bin/apxs -c -i mod_proxy_http.c

出现下面的东西说明装好了。

———————————————————————-
Libraries have been installed in:
/usr/local/apache2/modules

#要安装的模块装好了
[zhangy@BlackGhost apache2]$ ls ./modules/
httpd.exp     mod_fastcgi.so    mod_proxy.so           mod_rewrite.so
libphp5.so    mod_fcgid.so      mod_proxy_balancer.so
mod_cache.so  mod_mem_cache.so  mod_proxy_http.so

三,配置httpd.conf,测试负载均衡

1,根据请求数(默认),平均分配

  1. LoadModule proxy_module modules/mod_proxy.so  
  2. LoadModule proxy_balancer_module modules/mod_proxy_balancer.so  
  3. LoadModule proxy_http_module modules/mod_proxy_http.so  
  4.   
  5. ProxyRequests Off  
  6. <Proxy balancer://clusterphpinfo>  
  7. BalancerMember http://192.168.18.2:10004  
  8. BalancerMember http://192.168.18.2:10000  
  9. </Proxy>  
  10. ProxyPass /test2 balancer://clusterphpinfo stickysession=STICK_PORT_TOKEN nofailover=On  
  11. ProxyPassReverse /test2 balancer://clusterphpinfo  
  12.   
  13. <Location /balancer-manager>  
  14. SetHandler balancer-manager  
  15. Order Deny,Allow  
  16. Allow from all  
  17. #Allow from 192.168.18.*  
  18. </Location>  

配置说明:在httpd.conf里面添加以上配置

1,为什么我这里要用/test2而不是,因为在这里用/会和documentroot冲突,因为监听的都是80端口。2,stickysession 从字面上看,严格的session,加上他说明实现严格的session的负载均衡,根据个人需要吧。
3,其实像这样的负载均衡,其实就是反向代理,http://localhost/test2起到了连接池的作用,如果你访问http://localhost/test2/index.php,他其实访问的http://192.168.18.2:10004/index.php或者是http://192.168.18.2:10000/index.php
4,<Location /balancer-manager></Location>中间的内容是用监测负载均衡的情况的,可 以放到正式服务器,也可以不放。

访问http://localhost/test2/balancer-manager看下图:

apache负载均衡

apache负载均衡

图片说明:从上图我们可以看出,负载均衡算法是根据请求数(byrequests),平均分配到二个虚拟主机。

2,给节点加权重,根据挂起的请求数进行平衡

  1. LoadModule proxy_module modules/mod_proxy.so  
  2. LoadModule proxy_balancer_module modules/mod_proxy_balancer.so  
  3. LoadModule proxy_http_module modules/mod_proxy_http.so  
  4.   
  5. ProxyRequests Off  
  6. <Proxy balancer://clusterphpinfo>  
  7. BalancerMember http://192.168.18.2:10004 loadfactor=5  
  8. BalancerMember http://192.168.18.2:10000 loadfactor=1  
  9. ProxySet lbmethod=bytraffic  
  10. </Proxy>  
  11. ProxyPass /test2 balancer://clusterphpinfo stickysession=STICK_PORT_TOKEN nofailover=On  
  12. ProxyPassReverse /test2 balancer://clusterphpinfo  
  13.   
  14. <Location /balancer-manager>  
  15. SetHandler balancer-manager  
  16. Order Deny,Allow  
  17. Allow from all  
  18. #Allow from 192.168.18.*  
  19. </Location>  

配置说明:说一下不同的

1,平衡算法,由byrequests变成bytraffic

2,由平均分配变成非平均分配

apache负载均衡bytraffic

apache负载均衡bytraffic


文章来源: markwcm.blog.csdn.net,作者:黄啊码,版权归原作者所有,如需转载,请联系作者。

原文链接:markwcm.blog.csdn.net/article/details/47660647

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。