为了获取更好的性能,我们常常需要将tomcat进行集群部署。下文通过nginx转发实现tomcat集群,并通过nginx-upstream-jvm-route插件保证session的粘滞。
应用场景环境:
server1 服务器上安装了 nginx + tomcat01
server2 服务器上只安装了 tomcat02
server1 IP 地址: 192.168.1.88
server2 IP 地址: 192.168.1.89
安装步骤:
1)在server1 上安装配置 nginx + nginx_upstream_jvm_route
shell $> wget -c http://sysoev.ru/nginx/nginx-*.tar.gz
shell $> svn checkout http://nginx-upstream-jvm-route.googlecode.com/svn/trunk/ nginx-upstream-jvm-route-read-only (googlecode已墙,移步https://github.com/nulab/nginx-upstream-jvm-route)
shell $> tar zxvf nginx-*
shell $> cd nginx-*
shell $> patch -p0 < ../nginx-upstream-jvm-route-read-only/jvm_route.patch
shell $> useradd www
shell $> ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=/root/nginx-upstream-jvm-route-read-only
shell $> make
shell $> make install
2)分别在两台机器上安装 tomcat和java
设置tomcat的server.xml,在两台服务器的tomcat的配置文件中分别找到:
<Engine name="Catalina" defaultHost="localhost" >
分别修改为:
Tomcat01:
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
Tomcat02:
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm2">
分别启动两个tomcat
3)设置nginx
shell $> cd /usr/local/nginx/conf
shell $> mv nginx.conf nginx.bak
shell $> vi nginx.conf
配置示例:
4)测试
运行 nginx -t 测试配置的正确性,
可将服务器注释一个,实现服务的热部署,
server 192.168.2.88:8080 srun_id=jvm1;
server 192.168.2.89:8080 srun_id=jvm2;
运行 nginx -s reload 实现热部署。
更新:
可以用tengine替换nginx使用。
网址:http://tengine.taobao.org/
回话保持:http://tengine.taobao.org/document_cn/http_upstream_session_sticky_cn.html
|
所有评论仅代表网友意见