首先:配置tomcat集群 nginx+ tomcat7
1 安装jdk (可以选择6或者7都可以) 此处不用多说。
2 下载nginx-1.2.5 (下载附件)
3 下载 memcached(下载附件)
4
(注意:nginx负载均衡不会有太大问题,但是,在用memcached配置session共享的时候,tomcat的版本可能成为关系到成败的关键,
目前选用的是tomcat apache-tomcat-7.0.12 版本
5、首先用nginx来搭建三台tomcat服务器的负载均衡环境,如何在一台机器启动三个tomcat请参照我的另外一篇文章
我的tomcat的端口分别是8181,8282,8383
解压下载的nginx压缩包,我的路径是D:\tomcat7collection\myserver;
在D:\tomcat7collection\myserver\nginx-1.2.6\conf 下找到 nginx.conf,该文件为nginx的请求分发配置文件,打开nginx.conf做如下修改:
(1)在http {…} - server{…} - location / {…}中加入一行:“proxy_pass http://127.0.0.1;”
修改后如下:
[html] view plaincopy
-
location / {
-
root html;
-
index index.html index.htm;
-
proxy_pass http://127.0.0.1;
-
}
(2)
在http {…}中加入以下代码:
#设定负载均衡的服务器列表
[html] view plaincopy
-
upstream 127.0.0.1 { <span style="font-family: 'Courier New', Consolas, 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 24px; white-space: pre-wrap; background-color: rgb(248, 248, 248); ">#weigth参数表示权值,权值越高被分配到的几率越大</span>
-
server 127.0.0.1:8181 weight=1;
-
server 127.0.0.1:8282 weight=2;
-
server 127.0.0.1:8383 weight=3;
-
}
可以进行请求分发的简单测试,
启动nginx,打开cmd,进入到 D:\tomcat7collection\myserver\nginx-1.2.6\ 路径下 输入nginx 敲回车,调度处任务管理器看到进程里面有nginx则表示启动成功
启动三台tomcat
用eclipse新建一个web项目cluster,该项目下新建一个cluster.jsp文件,编辑该文件内容如下:
[html] view plaincopy
-
<%@ page contentType="text/html; charset=UTF-8" %>
-
<%@ 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>");
-
// 如果有新的请求,则添加session属性
-
String name = request.getParameter("name");
-
if (name != null && name.length() > 0) {
-
String value = request.getParameter("value");
-
session.setAttribute(name, value);
-
}
-
out.print("<b>Session List:</b>");
-
Enumeration<String> names = session.getAttributeNames();
-
while (names.hasMoreElements()) {
-
String sname = names.nextElement();
-
String value = session.getAttribute(sname).toString();
-
out.println( sname + " = " + value+"<br>");
-
System.out.println( sname + " = " + value);
-
}
-
%>
-
</body>
-
</html>
修改tomcat\conf\server.xml
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat7-1">
对应的另外两台tomcat分别是 tomcat7-2 tomcat7-3
将cluster项目打包成war包分别放到每个tomcat的webapps下
在浏览器中输入localhost:8080/cluster/cluster.jsp 重复刷新可以看到输出的session值在变化说明分发处理成功
6 配置session 共享
将上面下载好的memcached的压缩包解压到 D:\tomcat7collection\memcached
使用的是memcached-session-manager-tc7-1.6.3 来进行,使用到的jar包如下:
jar包下载地址
下载如下jar包,点击下载spymemcached-2.7.3.jar
其他jar包可以从如下链接找到:http://code.google.com/p/memcached-session-manager/downloads/list
如果大家懒得挨个去下,我提供了自己下载整理好的下载 tomcate session 共享所需jar包下载
好了,把上述jar包放到tomcat/lib 目录下,修改每个tomcat的配置文件tomcat\conf\context.xml
在<context>...</context>标签之间加入如下代码:
[html] view plaincopy
-
<Manager
-
className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
-
memcachedNodes="n1:127.0.0.1:11211"
-
sticky="false"
-
sessionBackupAsync="false"
-
lockingMode="uriPattern:/path1|/path2"
-
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
-
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"/>
关闭所有tomcat,打开cmd 进入memcached解压到的路径D:\tomcat7collection\memcached 输入:memcached.exe –d install 回车安装windows服务
输入:memcached.exe –p 11211 –d start 回车启动memcached服务,启动三个tomcat
在浏览器中输入localhost:8080/cluster/cluster.jsp 重复刷新发现session的值不变如下所示,session共享成功
SESSION ID:76AC7C56C4B278ADFDEC6EA782192D15-n1.tomcat7-1
相关推荐
Nginx+Tomcat+Memcached实现tomcat集群和session共享 nginx配置
Nginx+Tomcat7+Memcached集群Session共享 完整例子 主要是利用memcached-session-manager(下面简称msm)开源tomcat插件改变tomcat原始的session存储机制,将session的存储放到分布式缓存memcache中,从而实现对...
Nginx+Tomcat+Memcached共享session集群配置
Nginx+Tomcat+Memcached实现tomcat集群和session共享 tomcat部分
Nginx+Tomcat+Memcached集群Session共享实例,Nginx 1.81 + tomcat1 + tomcat2 + Memcached 完整可运行 访问根目录下 test.jsp 可看效果
Nginx+Tomcat+Memcached实现tomcat集群和session共享Nginx+Tomcat+Memcached实现tomcat集群和session共享Nginx+Tomcat+Memcached实现tomcat集群和session共享
Windows7 + Nginx + Memcached + Tomcat 集群 session 共享
Nginx+Tomcat+Memcached-Session-Manager整合做集群实现Session共享,实战操作,亲测可用。本文档仅供交流学习使用,欢迎大家批评指正。
Nginx+tomcat+memcached集群session共享(win7下)所用到一些zip文件和必须的jar包
2)Tomcat6和Tomcat7使用不同msm支持包:memcached-session-manager-tc6-1.6.5.jar和memcached-session-manager-tc7-1.6.5.jar,只可选一,否则启动报错。 3)msm源码中的lib包版本太低:spymemcached需要使用...
Tomcat+Memcached实现tomcat集群和session共享.docx
couchbase-client-1.2.2.jar ...memcached-session-manager-1.6.5.jar memcached-session-manager-tc6-1.6.5.jar minlog-1.2.jar msm-kryo-serializer-1.6.5.jar reflectasm-0.9.jar spymemcached-2.10.2.jar
Nginx+Tomcat+memcached实现集群部署、负载均衡session共享,内含说明文档,下载地址,依赖jar包,全套提供,亲测有效
兼容Tomcat7 与tomcat8 +memcached做session共享 , 解决了tomcat7与Tomcat8的 java.lang.NoSuchFieldError: attributes 错误。
NULL 博文链接:https://mukeliang.iteye.com/blog/2197850
tomcat7+nginx+memcached 配置tomcat 集群以及负载均衡所需要的msm jar包 亲测可用 msm 1.9.7版本 采用kryo序列化方式
NULL 博文链接:https://shizhijian870525.iteye.com/blog/1724613
基于window版本下,使用nginx+tomcat搭建好的集群架构,解压既可以使用。 nginx使用的是当前最新版本(1.7.0),memcached for windown版本是1.4.4,也是目前最新版本。 包含了http的集群环境,https的集群环境,同时...
本文档主要讲解,如何在CentOS6.5下搭建Nginx+Tomcat+Memcached负载均衡集群服务器,Nginx负责负载均衡,Tomcat负责实际服务,Memcached负责同步Tomcat的Session,达到Session共享的目的。
NULL 博文链接:https://jackroomage.iteye.com/blog/1936597