一、配置Glassfish支持AJP协议(Apache to Java Protocol)接口:
复制ajp 所需的jar
tomcat 5.5.23/server/lib/tomcat-ajp.jar,
tomcat 5.5.23/server/lib/commons-modeler-2.0.jar
commons-logging-1.0.4.jar, log4j-1.2.14.jar 到Glassfish/lib 目录
asadmin create-jvm-options --target cluster1 "-DjvmRoute=\${AJP_INSTANCE_NAME}"
asadmin create-jvm-options --target cluster1 "-Dcom.sun.enterprise.web.connector.enableJK=\${AJP_PORT}"
asadmin create-system-properties --target server1 AJP_INSTANCE_NAME=server1
asadmin create-system-properties --target server1 AJP_PORT=8019
asadmin create-system-properties --target server2 AJP_INSTANCE_NAME=server2
asadmin create-system-properties --target server2 AJP_PORT=8029
二、配置Apache负载均衡模块:
要求已安装Apache2.2.6,修改httpd.conf
取消下面语句的注释
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
增加如下语句
ProxyRequests off
<Proxy balancer://tccluster>
BalancerMember ajp://10.17.34.226:8019 loadfactor=1 route=server1
BalancerMember ajp://10.17.34.226:8029 loadfactor=1 route=server2
</Proxy>
<Location /databus>
ProxyPass balancer://tccluster/databus stickysession=JSESSIONID nofailover=On
ProxyPassReverse balancer://tccluster/databus
</Location>
修改ajp://10.17.34.226:8019 到Glassfish server的具体地址和AJP端口
修改 route=server1 到前面设置的AJP_INSTANCE_NAME。
配置中 "nofailover=On" 适合于没有 session 复制的情况下, 这种情况下, 如果其中一台 HTTP 服务器出错, 那么原来分配在这个出错机器上的浏览器客户端不会被自动转移到另外的服务器上, 必须重新启动浏览器才能将请求分配到另外一台服务器上去.