Apache 2.2.11+Tomcat 6.0.20集群配置

这几天一直在看Apache和Tomcat的集群配置。配置了很久,终于成功!

Apache2.x和Tomcat配置可以采用反向代理的方式(mod proxy),也可以采用JK模块,最终采用了JK模块,JK模块的效率要比反向代理高,这是Apache官方网站上说的,我没有测试过。JK配置虽然复杂,但更加灵活。
首先,下载Apache2.2.11,Tomcat6.0.20解压版,以及mod_jk-1.2.28-httpd-2.2.3.so
安装Apache服务器,将mod_jk-1.2.28-httpd-2.2.3.so重命名为mod_jk.so并拷贝到Apache安装目录下的modules文件夹中。
在Apache2.2安装目录的conf文件夹下,建立以下3个文件:
mod_jk.conf、workers.properties、uriworkermap.properties

在httpd.conf最后加上:

  1. # JK module settings  
  2. Include conf/mod_jk.conf  

表示将mod_jk.conf配置文件包含进来,以下是mod_jk.conf文件的内容:

  1. # Load JK Module  
  2. LoadModule jk_module modules/mod_jk.so  
  3.   
  4. # Configure mod_jk  
  5. JkWorkersFile conf/workers.properties  
  6. JkMountFile conf/uriworkermap.properties  
  7. JkShmFile logs/mod_jk.shm  
  8. JkLogFile logs/mod_jk.log  
  9. JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories  
  10. JkLogLevel warn  
  11. JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"  
  12. HostnameLookups Off  
  13.   
  14. <Location /jkmanager/>  
  15.     JkMount jkstatus  
  16.     Order deny,allow  
  17.     Deny from all  
  18.     Allow from 127.0.0.1  
  19. </Location>  

接下来配置workers.properties文件:

  1. # environment slash for Windows(反斜杠代表Windows系统)  
  2. ps=\  
  3.   
  4. worker.retries=3  
  5.   
  6. # 此处定义了一个负载均衡器和状态监视器  
  7. worker.list=loadbalancer,jkstatus  
  8.   
  9. worker.tomcatA.type=ajp13  
  10. worker.tomcatA.host=localhost  
  11. worker.tomcatA.port=9001  
  12. worker.tomcatA.lbfactor=1  
  13. worker.tomcatA.connection_pool_timeout=600  
  14. worker.tomcatA.socket_keepalive=true  
  15. worker.tomcatA.socket_timeout=60  
  16.   
  17. worker.tomcatB.type=ajp13  
  18. worker.tomcatB.host=localhost  
  19. worker.tomcatB.port=9002  
  20. worker.tomcatB.lbfactor=1  
  21. worker.tomcatB.connection_pool_timeout=600  
  22. worker.tomcatB.socket_keepalive=true  
  23. worker.tomcatB.socket_timeout=60  
  24.   
  25. worker.tomcatC.type=ajp13  
  26. worker.tomcatC.host=localhost  
  27. worker.tomcatC.port=9003  
  28. worker.tomcatC.lbfactor=1  
  29. worker.tomcatC.connection_pool_timeout=600  
  30. worker.tomcatC.socket_keepalive=true  
  31. worker.tomcatC.socket_timeout=60  
  32.   
  33. worker.jkstatus.type=status  
  34.   
  35. worker.loadbalancer.type=lb  
  36. worker.loadbalancer.sticky_session=true  
  37. worker.loadbalancer.sticky_session_force=false  
  38. worker.loadbalancer.balance_workers=tomcatA,tomcatB,tomcatC  

上述配置文件中,sticky_session=true,sticky_session_force=false。很多文章建议,前者设置为true时,后者也设置为true。

相关推荐