Apache2.2.11+Tomcat6.0.20集群配置
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最后加上:
?接下来配置workers.properties文件:
?以下是集群配置内容(Tomcat6的server.xml中没有相应的注释代码,必须从Tomcat5的里面复制过来,再修改一下):
注意:这里要使用BackupManager,不要使用DeltaManager。3台Tomcat的Receiver端口要设置为不一样的。
接下来,要进行Session复制,还需要给你的web.xml配置文件中加一行<distributable/>。这样很麻烦,改变Tomcat的content.xml配置文件就可以了,修改19行为<Context distributable="true">
大功告成,先启动Apache,然后分别启动几个Tomcat。
在浏览器上输入http://localhost/test.jsp
在一个Tomcat设置Session的内容,然后刷新,通过观察后台窗口,会发现Session一直粘在这台Tomcat上,然后关闭掉这台Tomcat,继续刷新页面,会发现Session里面的内容自动转移到了另外一台Tomcat上面。如果你将sticky_session_force设置为false,此时刷新页面,就会报503错误。
对uriworkermap.properties还有一些模糊,加了/后就代表相对路径,不加代表绝对匹配,我用*.jsp,居然报404找不到页面的错误。用/*.jsp就正常了,我没有设置任何虚拟目录。而图片的配置刚好相反,加了斜杠就不显示,去掉就可以显示了。想不通啊!
以下是测试用的test.jsp
- 摘自:http://hi.baidu.com/coolda/blog/item/db40e4111914bccaa6ef3fc1.html?