首先,确保在机器上已经安装了 nginx、tomcat、memcached,并且都可以成功启动服务
nginx可以正常启动了,我们就可以通过 域+端口号来访问nginx的80端口了
以本地举例
localhost
nginx可以访问,我们就开始配置nginx的配置文件,来做与Tomcat的映射
location / {
root html;
index index.html index.htm;
proxy_pass http://tomcat_115;
}
这里面是配置了nginx默认解析仅截取了一段代码,并不代表全部意思
其中proxy_pass则配置了相当于是代理转向
那么我们还需要在nginx的配置文件里面添加
upstream tomcat_115 {
server 192.168.1.110:8080 weight=1;
server 192.168.1.111:8080 weight=2;
server 192.168.1.112:8080 weight=3;
}
这段代码就是配置的本地tomcat的映射,后面的weight则配置了权重,权重越高,则被分配到的几率越高
以上代码就是nginx负责对发来的请求做分配处理
配置好后,可以通过nginx -t来验证配置文件是否正确
接下来配置memcached
如下是官网的安装说明,可以参看
https://code.google.com/p/memcached-session-manager/wiki/SetupAndConfiguration
官方文档里面说,首先要把memcached的jar包下载下来,并且添加到tomcat里面,官网给的路径是 $CATALINA_HOME/lib/,放到TOMCAT_HOME/lib/应该也可以
需要注意的是
jar包里面有tomcat的版本对应的jar
另外
如果你使用memcached,还需要下载spymemcached-2.8.12.jar and couchbase-client-1.1.4.jar.这两个jar包
如果用到couchbase,则还需要下载***jar包,这里不过多说明了
然后配置tomcat的配置文件,可以添加到server.xml里面,也可以添加到context.xml里面,
具体代码如下
<Context>
...
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:host1.yourdomain.com:11211,n2:host2.yourdomain.com:11211"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
/>
</Context>
这是官网给的代码,另外还有两种写法,可参考官网,另外,其中的配置说明在官网里面也有,这里只简单介绍能跑通
memcachedNodes 的意思是指向memcached的节点,如果有多台机器安装了memcached,则需要全部加到这个配置里面,其中的格式为 域+端口号,这里面的域和端口号均指的是安装memcached的域和端口,memcached的默认端口号为11211
至于前面的n1,和n2,可以理解为编程语言里面的命名空间,可以在添加其他配置的时候用到
官网上面说,如果只有单个指向,可以不用写前边的n1等。
配置好这些,重启若干tomcat,重新加载nginx,就可以试试访问nginx的80端口啦,多访问若干次,被分配到访问的tomcat是随机的。
然后可以去看tomcat的访问日志,如果每个tomcat均有被访问到的记录,说明成功啦
可以通过简答的jsp代码来获取sessionId,确认session已经被共享,当刷新页面的时候sessionId是不变的
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>sessionID:<%=session.getId() %></h1>
</body>
</html>
分享到:
相关推荐
基于tomcat7版本的memcached会话保持,内置tomcat需要的jar包。
通过lvs+keepalived+nginx+tomcat实现服务负载均衡。 通过memcached实现不同服务器之间session共享。 包含jar文件。 本人亲测实验通过。
Nginx+Tomcat+Memcached实现tomcat集群和session共享 nginx配置
Nginx+Tomcat7+Memcached集群Session共享 完整例子 主要是利用memcached-session-manager(下面简称msm)开源tomcat插件改变tomcat原始的session存储机制,将session的存储放到分布式缓存memcache中,从而实现对...
nginx+tomcat8+memcached session共享所需jar包 直接放到tomcat/lib下即可
Nginx+Tomcat+Memcached共享session集群配置
Nginx+Tomcat+memcached实现集群部署、负载均衡session共享,内含说明文档,下载地址,依赖jar包,全套提供,亲测有效
Nginx+Tomcat+Memcached实现负载均衡过程中session所需架包
Nginx+Tomcat+Memcached集群Session共享实例,Nginx 1.81 + tomcat1 + tomcat2 + Memcached 完整可运行 访问根目录下 test.jsp 可看效果
Tomcat要支持memcached管理Session,需要调用一些jar库文件如下(网上有的文章中可能所说的jar包不全,或者版本不样的会报错,但这里我已经经过验证了): 1) couchbase-client-1.2.2.jar 2) javolution-5.5.1....
nginx+tomcat8.0+memcached1.5 session共享所需jar包,亲测可用,采用javolution解析
Nginx+Tomcat+Memcached实现tomcat集群和session共享 tomcat部分
使用Nginx + Memcached + Tomcat实现负载均衡和session共享案例
nginx+memcached+tomcat 负载均衡+session共享实现所有代码 教程请看:https://blog.csdn.net/dayuang2009/article/details/80312249
Nginx+Tomcat+Memcached实现tomcat集群和session共享Nginx+Tomcat+Memcached实现tomcat集群和session共享Nginx+Tomcat+Memcached实现tomcat集群和session共享
兼容Tomcat7 与tomcat8 +memcached做session共享 , 解决了tomcat7与Tomcat8的 java.lang.NoSuchFieldError: attributes 错误。
nginx+tomcat+memcached 构建session共享
tomcat7+nginx+memcached 配置tomcat 集群以及负载均衡所需要的msm jar包 亲测可用 msm 1.9.7版本 采用kryo序列化方式
Nginx+tomcat+memcached集群session共享(win7下)所用到一些zip文件和必须的jar包
nginx+tomcat+memcached服务架构实现session共享所需jar包