来源:自学PHP网 时间:2015-04-14 11:51 作者: 阅读:次
[导读] 1. Tomcat的负载均衡(apache的mod_jk来实现):2.3. 1、基于Apache的mod_jk来实现:4. apache5. / \6. tom1 tom27.8. 在完成两台tomcat1,tomcat2的安装之后,希望可以实现负载均衡,使用mod_jk可以......
1. Tomcat的负载均衡(apache的mod_jk来实现):
2. 3. 1、基于Apache的mod_jk来实现: 4. apache 5. / \ 6. tom1 tom2 7. 8. 在完成两台tomcat1,tomcat2的安装之后,希望可以实现负载均衡,使用mod_jk可以实现节点的故障恢复功能,即一个节点出现问题,mod_jk会其不参与负载,在节点故障恢复后,mod_jk会让其参与负载,对此节点是否失败,对用户而言是透明的。 9. 10. 实现流程: 11. a、用户访问数据达到Apache后,如果是静态内容,Apache立即回应; 12. b、如果Apache发现用户请求的是动态内容如jsp,就将请求丢给其中的一台tomcat来处理。 13. c、每次用户重复访问时,都被分配到同一台机器上(可以做会话粘滞或是会话复制) 14. 15. 本文环境在之前的基础上新增加一台机器(做负载均衡器),其实负责负载均衡的主要是由一个配置文件完成!那就是workers.propertise。通过定义worker.list,port,host,type,lbfactor的值来定义每一台tomcat的主机;通过lbfactor来区别每台机器的权重,权重数值越大得到的用户请求数就越多。所以,只要重点关注这个文件的内容就行了。 16. 17. 实施: 18. a、安装Aapche 19. # tar -xzf httpd-2.2.22.tar.gz 20. # chown root.root -R httpd-2.2.22 21. # cd httpd-2.2.22 22. # ./configure --prefix=/usr/local/apache 23. # make && make install 24. 25. b、编译mod_jk模块 26. 27. # tar -xzf tomcat-connectors-1.2.32-src.tar.gz 28. # cd tomcat-connectors-1.2.32-src 29. # cd native/ 30. # ./configure --with-apxs=/usr/local/apache/bin/apxs 31. # make && make install 32. # ll /usr/local/apache/modules/mod_jk.so 33. -rwxr-xr-x 1 root root 1076923 Feb 20 14:17 /usr/local/apache/modules/mod_jk.so 34. 35. c、加载mod_jk 36. # vim /usr/local/apache/conf/httpd.conf 37. #增加的内容 38. LoadModule jk_module modules/mod_jk.so 39. JkWorkersFile /usr/local/apache/conf/workers.properties 40. JkMountFile /usr/local/apache/conf/uriworkermap.properties 41. JkLogFile /usr/local/apache/logs/mod_jk.log 42. JkLogLevel info 43. JkLogStampformat "[%a %b %d %H:%M:%S %Y]" 44. 45. #告诉apache,如何处理相关类形的文件(这几行可要可不要,只要urlworkermap.properties里面有定义也是可以的!:) 46. JkMount /* controller 47. JkMount /*.jsp controller 48. JkMount /*.action controller 49. 50. 51. # cat /usr/local/apache/conf/workers.properties 52. # cat workers.properties 53. worker.list=controller 54. #========tomcat1======== 55. worker.tomcat1.port=8009 56. worker.tomcat1.host=192.168.10.56 57. worker.tomcat1.type=ajp13 58. worker.tomcat1.lbfactor = 1 59. worker.tomcat12.connection_pool_timeout=750 60. worker.tomcat12.socket_keepalive=0 61. worker.tomcat12.socket_timeout=3000 62. worker.tomcat12.connect_timeout=1000 63. worker.tomcat12.reply_timeout=3300 64. 65. #========tomcat2======== 66. worker.tomcat2.port=8009 67. worker.tomcat2.host=192.168.10.57 68. worker.tomcat2.type=ajp13 69. worker.tomcat2.lbfactor = 1 70. worker.tomcat12.connection_pool_timeout=750 71. worker.tomcat12.socket_keepalive=0 72. worker.tomcat12.socket_timeout=3000 73. worker.tomcat12.connect_timeout=1000 74. worker.tomcat12.reply_timeout=3300 75. 76. #=======balance controller==== 77. worker.controller.type=lb 78. worker.retries=3 79. worker.controller.balance_workers=tomcat1,tomcat2 80. worker.controller.sticky_session=1 81. 82. 相关参数说明: 83. worker.tomcat12.socket_keepalive=0#此属性将告诉操作系统在未激活的连接中发送KEEP_ALIVE信息(发送间隔时间依赖于操作系统的设置,一般为120秒),这样将防止防火墙切断未激活的网络连接。 84. worker.tomcat12.socket_timeout=300000#此属性说明连接在未激活的状况下持续多久,web server将主动切断之。 85. worker.tomcat12.connect_timeout=10000# 此属性说明了web server等待PONG回应的时间(以ms为单位)。 86. worker.tomcat12.reply_timeout=330000#此属性告诉web server在接到远端的Tomcat已死并实时的切换到集群中的另外一个Tomcat的回应之前等待一段时间。 87. worker.tomcat12.reply_timeout=0#此属性说明了web server在检测到Tomcat失败后如何进行恢复工作(默认就是0,全部恢复) 88. 89. worker.loadbalancer.sticky_session=0#表述是否将对SESSION ID的请求路由回到相同的Tomcat worker。(默认是0,session不复制) 90. 91. 92. # cat uriworkermap.properties 93. /*=controller 94. !/*.jpg=controller 95. !/*.gif=controller 96. !/*.png=controller 97. !/*.bmp=controller 98. !/*.html=controller 99. !/*.htm=controller 100.!/*.swf=controller 101.!/*.css=controller 102.!/*.js=controller 103. 104.完成以上所有之后,你会发现两台tomcat确实已经负载了,但是一个新的问题又产生,会话的问题。第一次提交和第二次提交不在同一台服务器,这基本上可以视为数据丢失。 105.如果仅仅只是浏览,那么问题可能不是很明显,当然如果你登录了,那么系统又会提示让你登录。于是,就有了tomcat的会话复制! 106.目前关于tomcat的会话复制,有两种常见的方法:利用tomcat自身的简单集群功能,帮助复制会话。另外一种就是利用memcache这类缓存程序来缓存会话。 107. 108.今天当然是首选第一种方法,利用tomcat的简单功能进行会话复制。 详见下篇!:) 本文出自 “潜入技术的海洋” 博客 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com