Session共享之Memcached部署
2016-03-20 13:44
393 查看
Session共享之Memcached部署
Memcached是一个高校分布式内存缓存系统,主要用于减轻DB负载。它通过在内存中缓存数据和对象来显著减少读取数据库的次数。 特点:高性能、客户分布式、非持久,基于以上特点,非常适合Session缓存(?存储)
部署环境
系统:CentOS6.5.x86_64环境:Nginx1.9.12+Tomcat7.0.68+Memcached1.4.25
路径 /usr/local/work/
Tomcat7+Nginx 配置
部署两台Tomcat7+Nginx,端口分别为8080,8081
cp apache-tomcat-7.0.68.tar.gz /usr/local/work/ cd /usr/local/work/ tar -zxvf apache-tomcat-7.0.68.tar.gz cp apache-tomcat-7.0.68 tomcat-session-test1 cp apache-tomcat-7.0.68 tomcat-session-test2 rm -rf apache-tomcat-7.0.68 ------------------------------ cp nginx-1.9.12 /usr/local/work/ cd /usr/local/work/ tar -zxvf nginx-1.9.12.tar.gz cd nginx-1.9.12 ./configure --prefix=/usr/local/nginx ============== 缺少相应Lib时,通过yum安装对应lib库 ============== make && make install
启动Nginx前修改配置文件conf/nginx.conf
http{ upstream site{ server 127.0.0.1:8080; server 127.0.0.1:8081; } server{ listen 80; server_name www.xxxx.com; location /{ root html; index index.html index.htm; proxy_pass http://site; } }
启动Tomcat-session-test1前,修改配置文件conf/server.xml,配置端口为8080(默认),在webapps/ROOT目录放入index.jsp
<%@page contentType="text/html;charset=utf-8"%> Tomcat session test1!<%=session.getId()%>
启动Tomcat-session-test2前,修改配置文件conf/server.xml,配置端口为8081,在webapps/ROOT目录放入index.jsp
<%@page contentType="text/html;charset=utf-8"%> Tomcat session test2!<%=session.getId()%>
分别启动Nginx,tomcat-session-test1,tomcat-session-test2;
本地设置Host:192.168.56.101 www.xxxx.com
访问 www.xxxx.com ,多次刷新可以看见Nginx反向代理了两台Tomcat并且页面上的内容不一致,且session不一致。
Memcached +Tomcat7配置
cp memcached-1.4.25.tar.gz /usr/local/work/ cd /usr/local/work/ tar -zxvf memcached-1.4.25.tar.gz cd memcached-1.4.25 ./configure --with-libevent=/usr make && make install /usr/local/bin/memcached -d -m 1024 -u root -p 12000 -P /tmp/memcached.pid
下载以下jar包:
memcached-session-manager-1.9.2.jar memcached-session-manager-tc7-1.9.2.jar kryo-1.04.jar kryo-serializers-0.9.jar asm-3.3.1.jar msm-kryo-serializer-1.9.2.jar reflectasm-1.01.jar spymemcached-2.8.4.jar minlog-1.2.jar
放到每个Tomcat的Lib库下
修改Tomcat-session-test1,Tomcat-session-test2配置 conf/context.xml
<context> <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:127.0.0.1:12000" sticky="false" sessionBackupAsync="false" lockingMode="auto" requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory" /> </context>
重启Tomcat-session-test1,Tomcat-session-test2,刷新www.xxxx.com后可以看见服务器名称变化,session保持不变。
至此结束。
相关文章推荐
- java-模拟tomcat服务器
- i-jetty环境搭配与编译
- nginx代理指定目录
- 实现单Tomcat多Server配置
- 生产环境下的Tomcat配置
- 实战Memcached缓存系统
- 访问Nginx发生SSL connection error的一种情况
- Centos6 编译安装Python
- Linux部署Tomcat服务器
- Nginx+Naxsi部署专业级Web应用防火墙
- jenkins------结合maven将svn项目自动部署到tomcat下
- 硬盘安装CentOS 6.2以及添加GRUB启动菜单
- 如何搞定tomcat这只喵~
- CentOS 6.2实战部署Nginx+MySQL+PHP