在配置以前先确保如下这些配置在conf/httpd.conf文件中是生效的web
mod_proxy.soapache
mod_proxy_ajp.so后端
mod_proxy_balancer.sotomcat
mod_proxy_connect.so服务器
mod_proxy_http.sosession
mod_headers.so负载均衡
1. 配置反向代理测试
在conf/httpd.conf文件中增长如下配置代理
#在9000端口监听 Listen 9000 <VirtualHost *:9000> ProxyRequests Off ProxyPass / http://128.196.100.81:7001/ ProxyPassReverse / http://128.196.100.81:7001/ <Proxy *:9000> Order Deny,Allow Allow from all </Proxy> </VirtualHost>
这种配置只支持简单的反向代理,只能让请求转到一台服务器上,达不到负载均衡的效果code
2. 配置负载均衡
#在9000端口监听 Listen 9000 <VirtualHost *:9000> ProxyRequests Off ProxyPass / balancer://weblogic/ ProxyPassReverse / balancer://weblogic/ <Proxy balancer://weblogic> Order Deny,Allow Allow from all BalancerMember http://150.20.20.91:8001 BalancerMember http://150.20.20.92:8001 </Proxy> </VirtualHost>
这种配置能够支持简单的负载均衡,但若是对应的服务是有状态的,就是要求维护会话状态(同一个用户登陆后的请求会分发到同一台服务器上)的状况下这种配置是不行的
3. 配置负载均衡(支持会话维持)
#在9000端口监听 Listen 9000 <VirtualHost *:9000> Header add Set-Cookie "routeId=.%{BALANCER_WORKER_ROUTE}e;path=/" env=BALANCER_ROUTE_CHANGE ProxyRequests Off ProxyPass / balancer://weblogic/ stickysession=routeId ProxyPassReverse / balancer://weblogic/ stickysession=routeId <Proxy balancer://weblogic> Order Deny,Allow Allow from all BalancerMember http://150.20.20.91:8001 route=server1 BalancerMember http://150.20.20.92:8001 route=server1 </Proxy> </VirtualHost>
这种配置能够支持维持会话的负载均衡,但只在weblogic上简单测试过,在其它服务器上没测试过
最后,若是要支持比较完整的负载均衡及集群容错的话最好是根据后端的服务器进行不一样的配置,好比weblogic提供了一个专门的.so文件来与apache集成,而tomcat的话须要在配置中加上JSESSIONID这样配置,同时提供另外一种ajp的方式来支持负载均衡。