Apache反向代理实现负载均衡
2022-06-05PHP
反向代理就是客户端能访问外部的web,但是不能访问目标web,目标web所在的网络内一台机器充当目标web的代理,客户端直接访问代理就像访问目标web一样。下面主要讲解下Apache反向代理实现负载均衡具体配置。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| #需要解开的 .so 文件 #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_http_module modules/mod_proxy_http.so
##负载均衡器的控制信息页面 ## http://10.0.101.8:88/balancer-manager 并且只允许 10.0.101.8 的机器访问 <Location /balancer-manager> SetHandler balancer-manager order Deny,Allow Deny from all#拒绝访问 Allow from 10.0.101.8 #允许访问 </Location>
#启用正向(标准)代理请求 Off激活反向代理 ProxyRequests Off
#配置反向代理的模块 loadfactor:分配请求的比例 1--100 <Proxy balancer://mycluster> BalancerMember http://127.0.0.1:8181 loadfactor=50 BalancerMember http://127.0.0.1:8282 loadfactor=50 #热备,如果8181服务挂掉,apache会自动把请求发送到8282,如果8181恢复服务,apache会把请求发送到8181 #BalancerMember http://127.0.0.1:8282 status=+H </Proxy>
##配置虚拟主机,用于反向代理局域网机器 <VirtualHost *:80> #内部的请求 /cerp/ 代理 balancer://mycluster/ 模块的请求 #ProxyPass /cerp/ balancer://mycluster/
#stickysession session的性质,是否具有粘性,值通常是将类似JSESSIONID或PHPSESSIONID,它取决于支持会话的后端应用程序服务器。 #nofailover=On不支持会话复制 #lbmethod 负载均衡的算法,lbmethod可能的取值有: #lbmethod=byrequests 按照请求次数均衡(默认) #lbmethod=bytraffic 按照流量均衡 #lbmethod=bybusyness 按照繁忙程度均衡(总是分配给活跃请求数最少的服务器) #maxattempts=1 apache在放弃服务前,尝试的次数
ProxyPass /cerp/ balancer://mycluster/ stickysession=PHPSESSIONID nofailover=On lbmethod=byrequests maxattempts=1
#调整由反向代理服务器发送的HTTP应答头中的URL. #根据代理打开 balancer://mycluster/ 模块的a.html #如果点击a.html页面的内部链接(绝对路径另论),需要这个设置将路径修改为代理的路径. ProxyPassReverse /cerp balancer://mycluster/ </VirtualHost>
#代理HTTP和FTP连接的接收缓冲区大小(字节) ProxyReceiveBufferSize 2048 #代理超时 ProxyTimeout 300 #转发请求的最大代理数目 默认15,这个设置是为了避免无限代理循环或DoS攻击的发生 ProxyMaxForwards 300 |