Linux/Python学习论坛-京峰教育

 找回密码
 立即注册

一键登录:

搜索
热搜: 活动 交友 discuz
查看: 698|回复: 0

nginx+tomcat+session 群集搭建

[复制链接]

238

主题

288

帖子

1925

积分

超级版主

Rank: 8Rank: 8

积分
1925
QQ
发表于 2015-3-18 14:45:07 | 显示全部楼层 |阅读模式

1.  nginx+tomcat 环境整合方法:http://123.57.11.203/thread-162-1-1.html

2.  实现负载功能:

首先按照http://123.57.11.203/thread-157-1-1.html 此文档部署出多个tomcat,本文不再简述tomcat的部署方法;可以在一台server上部署出多个tomcat,但要根据server的性能来规划!若要在同一个server上规划出多个tomcat时需要修改tomcat运行时所使用的部分端口;本例暂时用多个server来部署tomcat!


IP地址端口jvmRoute
192.168.0.48080tomcat1
192.168.0.78080 (nginx :80)tomcat2

1) 配置tomcat :

在192.168.0.4上做以下操作,192.168.0.7 上的操作与此操作类同,只需要更改部分内容即可:

<1>. vim /usr/local/tomcat/conf/server.xml 取消Engine行的注释,并在其后加jvmRoute=”a”

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1"> 注:在192.168.0.7上操作时需要更改jvmRoute为”tomcat2”

<2>. 在tomcat web目录下创建test项目,并在其下创建WEB-INF目录,

mkdir –p  /var/www/jweb/test/WEB-INF

vim /var/www/jweb/test/WEB-INF/web.xml (test是tomcat的项目名,后面的文件需要自己手动创建); 在</web-app> 之前加入一个 <distributable/> 标签

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

version="2.4">

<display-name>TomcatDemo</display-name>

<distributable/>

</web-app>

<3>. context.xml修改

修改tomcat的配置文件context.xml,调整成新的session存储方式,在配置文件中<Context>标签内加入以下代码:

vim /usr/local/tomcat/conf/context.xml

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:127.0.0.1:11211"
sticky="false"
lockingMode="auto"
sessionBackupAsync="false"
sessionBackupTimeout="1000"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>

在tomcat/conf/logging.properties文件中添加de.javakaffee.web.msm.level=FINE,就可以在catalina.out的日志中看到详细的session存取情况。

<4>. 新建编辑index.jsp

<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>
<html><head><title>Cluster Test</title></head>
<body>
<%
//HttpSession session = request.getSession(true);
System.out.println(session.getId());
out.println("<br> SESSION ID:" + session.getId()+"<br>");
%>
</body>
</html>

2) 启动tomcat

sh /usr/local/tomcat/bin/startup.sh

3) nginx 配置:

在nginx.conf 文件中的http{ … } 部分中增加以下内容

upstream www.minunix.com {

server 192.168.0.4:8080 srun_id=tomcat1;

server 192.168.0.7:8080 srun_id=tomcat2;

ip_hash;

jvm_route $cookie_JSESSIONID|sessionid reverse;

}

在server { …. } 部分中配置以下内容:

location / {

proxy_pass http://tomcat_server;

proxy_redirect off;

proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

client_max_body_size 10m;

client_body_buffer_size 128k;

proxy_connect_timeout 90;

proxy_read_timeout 90;

proxy_send_timeout 90;

proxy_buffer_size 4k;

proxy_buffers 4 32k;

proxy_busy_buffers_size 64k;

proxy_temp_file_write_size 64k;

}

4) 启动nginx:

nginx -t

nginx -s reload

3. 访问查看效果:

http://192.168.0.7/




感谢原著作者大力分享http://www.minunix.com/2013/05/nginxtomcatsession/


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|京峰教育,只为有梦想的人 ( 京ICP备15013173号 )

GMT+8, 2020-2-18 02:32 , Processed in 0.025038 second(s), 11 queries , Redis On.

快速回复 返回顶部 返回列表