Apache配置反向代理及负载均衡

在配置以前先确保如下这些配置在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的方式来支持负载均衡。

相关文章
相关标签/搜索