nginx + jetty 基于wadi的集群配置
作者:Kiven Lee 2011-6-16
最先做的是nginx + Tomcat的集群,然而应用发布后发现UTF-8支持有问题,之前在debian linux上测试UTF-8是OK的,生产环境的linux是定制的,采用ttylinux的启动脚本,不包含jre6的话,系统镜像只有几十兆,在自己定制的linux上,tomcat的UTF-8解码有问题,弄了2天都没法解决,没办法,只好采用jetty做web服务器。
jetty的集群方式,在jetty官方站点的介绍中,有三种:
1、基于Terracotta方式 -- 推荐方式,大型集群使用,但缺点是要同时运行Terracotta服务
2、基于wadi方式 -- 本文采用方式,小集群使用,无需其他服务
3、基于jdbc共享session的方式 -- 另一种选择,看不出优点。
经过比较,我最后选择了wadi方式,一个原因是我的集群节点只有2个,属于小集群,第二个原因是不需要另外的服务。
配置:
1、下载jetty,我下载了最新版6.1.26,解压。
2、下载maven,安装。
3、转到jetty-6.1.26/contib/wadi目录下,执行mvn install。
执行mvn install后,应该在jetty-6.1.26/lib/wadi目录下生成这一堆文件
aspectjrt-1.5.2a.jar
backport-util-concurrent-2.2.jar
cglib-nodep-2.1_3.jar
commons-codec-1.2.jar
commons-httpclient-3.0.jar
concurrent-1.3.4.jar
jcl104-over-slf4j-1.0.1.jar
jetty-wadi-session-manager-6.1.26.jar
juli-6.0.16.jar
regexp-1.3.jar
slf4j-simple-1.0.1.jar
tribes-6.0.16.jar
wadi-aop-2.0.jar
wadi-core-2.0.jar
wadi-group-2.0.jar
wadi-tribes-2.0.jar
修改jetty-6.1.26/etc/jetty.xml配置文件,添加如下内容:
用如下命令分别在节点1和节点2运行:
java -Dnode.name=node01 -Djetty.port=8080 -Djava.net.preferIPv4Stack=true -jar start.jar
java -Dnode.name=node02 -Djetty.port=8080 -Djava.net.preferIPv4Stack=true -jar start.jar
nginx配置:
参考网上其他文章即可
测试:
略