apache反向代理集群,实现负载均衡,编译mod_proxy模块
星期三, 2012-02-22 | Author: Lee | JAVA-and-J2EE, linux | 6,195 views
利用apache和tomcat做集群,有好几种方式,另一种见apache tomcat 负载均衡集群和session复制 基于jk
本文是使用代理的模式;
一:查看是否有mod_proxy模块功能
[i5a6]# /usr/local/apache/bin/httpd -l
可以看到是否有mod_proxy的模块,直接去 /usr/local/apache/modules/ 去查看是否有对应的mod_proxy.so,mod_proxy_balancer.so,mod_proxy_http.so,mod_proxy_ajp.so的模块包
二:本人的是vps已经安装好的apache不过没有编译此模块要自己动手编译
[i5a6]# find / -name mod_proxy.c
注释:我是不知道它的安装目录,直接根目录下检索吧,主要是找对应的模块文件夹;
执行结果:/home/cpeasyapache/src/httpd-2.2.17/modules/proxy/mod_proxy.c
[i5a6]# cd /home/cpeasyapache/src/httpd-2.2.17/modules/proxy/
[i5a6]# /usr/local/apache/bin/apxs -c -i mod_proxy.c proxy_util.c
[i5a6]# /usr/local/apache/bin/apxs -c -i mod_proxy_balancer.c
[i5a6]# /usr/local/apache/bin/apxs -c -i mod_proxy_http.c
# 安装proxy_ajp模块
[i5a6]# /usr/local/apache/bin/apxs -c -i mod_proxy_ajp.c ajp_header.c ajp_utils.c ajp_msg.c ajp_link.c
可以去 /usr/local/apache/modules/ 看下生成了对应mod_proxy.so,mod_proxy_balancer.so,mod_proxy_http.so,mod_proxy_ajp.so的包,
三:配置httpd.conf,设置权重和session严格复制等
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 ProxyRequests Off <Proxy balancer://clusterphpinfo> BalancerMember http://192.168.1.101:8080 loadfactor=5 BalancerMember http://192.168.1.100:8080 loadfactor=1 ProxySet lbmethod=bytraffic </Proxy> ProxyPass /t2 balancer://clusterphpinfo stickysession=STICK_PORT_TOKEN nofailover=On ProxyPassReverse /t2 balancer://clusterphpinfo <Location /balancer-manager> SetHandler balancer-manager Order Deny,Allow Allow from all </Location> |
配置说明:
1,平衡算法,由byrequests变成bytraffic
2,由平均分配变成非平均分配
另一个虚拟主机配置:
<VirtualHost *:80> ServerName hs.i5a6.com ServerAlias i5a6.com DocumentRoot "/usr/local/apache/htdocs/hs" ProxyPass /hs ajp://127.0.0.1:8009/hs ProxyPassReverse /hs ajp://127.0.0.1:8009/hs </VirtualHost> <Proxy balancer://mycluster> BalancerMember http://127.0.0.1:8181/hs loadfactor=40 BalancerMember http://127.0.0.1:8282/hs loadfactor=40 BalancerMemberhttp://127.0.0.1:8080/hs loadfactor=10 BalancerMember http://127.0.0.1:8081/hs loadfactor=10 #热备,如果8181服务挂掉,apache会自动把请求发送到8282,如果8181恢复服务,apache会把请求发送到8181 #BalancerMember http://127.0.0.1:8282 status=+H </Proxy> <VirtualHost *:80> ServerName hs.i5a6.com DocumentRoot "/usr/local/apache/htdocs/hs" #内部的请求 /hs/ 代理 balancer://mycluster/ 模块的请求 #ProxyPass /hs/ balancer://mycluster/ #stickysession session的性质,是否具有粘性 #nofailover=On不支持会话复制 #lbmethod 负载均衡的算法,lbmethod可能的取值有: #lbmethod=byrequests 按照请求次数均衡(默认) #lbmethod=bytraffic 按照流量均衡 #lbmethod=bybusyness 按照繁忙程度均衡(总是分配给活跃请求数最少的服务器) #maxattempts=1 apache在放弃服务前,尝试的次数 ProxyPass /hs/ balancer://mycluster/ stickysession=STICK_PORT_TOKEN nofailover=On lbmethod=byrequests maxattempts=1 ProxyPassReverse /hs balancer://mycluster/ #调整由反向代理服务器发送的HTTP应答头中的URL. #根据代理打开 balancer://mycluster/ 模块的a.html #如果点击a.html页面的内部链接(绝对路径另论),需要这个设置将路径修改为代理的路径. </VirtualHost> |
文章作者: Lee
本文地址: https://www.pomelolee.com/916.html
除非注明,Pomelo Lee文章均为原创,转载请以链接形式标明本文地址
一条评论 to apache反向代理集群,实现负载均衡,编译mod_proxy模块
NameVirtualHost *
Leave a comment
Search
相关文章
热门文章
最新文章
文章分类
- ajax (10)
- algorithm-learn (3)
- Android (6)
- as (3)
- computer (85)
- Database (30)
- disucz (4)
- enterprise (1)
- erlang (2)
- flash (5)
- golang (3)
- html5 (18)
- ios (4)
- JAVA-and-J2EE (186)
- linux (143)
- mac (10)
- movie-music (11)
- pagemaker (36)
- php (50)
- spring-boot (2)
- Synology群晖 (2)
- Uncategorized (6)
- unity (1)
- webgame (15)
- wordpress (33)
- work-other (2)
- 低代码 (1)
- 体味生活 (40)
- 前端 (21)
- 大数据 (8)
- 游戏开发 (9)
- 爱上海 (19)
- 读书 (4)
- 软件 (3)
2012 年 02 月 22 日