Nginx+Tomcat+Memcached+kryo序列化集群Session共享

架构(一共使用3台主机,其中nginx主机上运行2个memcached实例,端口分别是11211、11212)

环境配置说明:

软件:Centos6.7、tomcat8.0、memcached1.4.4、nginx1.4.7、jdk-8u65-linux-x64、

实现msm+kryo必须的包,一共9个:

(注意:不同版本的tomcat,必须下载对应的memcached-session-manager包)

spymemcached-2.11.4

reflectasm-1.01

msm-kryo-serializer-1.8.2

minlog-1.2

memcached-session-manager-tc8-1.8.2

memcached-session-manager-1.8.2

kryo-serializers-0.11

kryo-1.04

asm-3.2

nginx服务器 IP:192.168.61.161

tomcat223服务器IP :192.168.61.223

tomcat224服务器IP: 192.168.61.224

1、nginx服务器配置

(1)nginx安装请参考http://dengxi.blog.51cto.com/4804263/1710472

/etc/nginx/nginx.conf内容如下:
worker_processes  1;
  events {
      worker_connections  1024;
   }
  
  http {
      include       mime.types;
      default_type  application/octet-stream;
      sendfile        on;
     keepalive_timeout  65;
 
 upstream tomcatserver{
 server 192.168.61.224:8080;
 server 192.168.61.223:8080;
  }
 
     server {
         listen       80;
         server_name  192.168.61.161;
        location / {
             root   html;
          proxy_pass http://tomcatserver;
          proxy_set_header  X-Real-IP  $remote_addr;
          client_max_body_size  100m;
             index  index.html index.htm;
         }
         error_page   500 502 503 504  /50x.html;
         location = /50x.html {
             root   html;
         }
 
      }
  }

(2)memcached安装

yum -y install memcached

启动两个memcached实例

memcached -d -p 11211

memcached -d -p 11212

2、tomcat223服务器安装

(1)安装JDK

rpm -ivh jdk-8u65-linux-x64.rpm

配置环境:

vim /etc/profile.d/java.sh

export JAVA_HOME=/usr/java/latest

export PATH=$JAVA_HOME/bin:$PATH

保存后source /etc/profile.d/java.sh立即生效

(2)安装tomcat

tar -xvzf apache-tomcat-8.0.28.tar -C/usr/local/

ln -sv /usr/local/apache-tomcat-8.0.28/usr/local/tomcat

配置环境变量:

vim /etc/profile.d/tomcat.sh

exportCATALINA_HOME="/usr/local/tomcat"

export PATH=$CATALINA_HOME/bin:$PATH

保存后source /etc/profile.d/tomcat.sh 立即生效

(3)测试主页添加与session共享配置

添加一个test应用和test.jsp

mkdir -pv/usr/local/tomcat/webapps/test/{WEB-INF,lib,class,META-INF}

vim /usr/local/tomcat/webapps/test/test.jsp

SessionID:<%=session.getId()%>

<BR>

SessionIP:<%=request.getServerName()%>

<BR>

SessionPort:<%=request.getServerPort()%>

<%

out.println("This is Tomcat Server 8080 8080 ");

%>

编辑/usr/local/tomcat/conf/server.xml 在Host段中添加以下Context内容

<Context docBase="test"path="/test" reloadable="true">

<ManagerclassName="de.javakaffee.web.msm.MemcachedBackupSessionManager"

memcachedNodes="n1:192.168.61.161:11211,n2:192.168.61.161:11212"

failoverNodes="n1"

requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"

transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"

/>

</Context>

重启tomcat

catalina.sh stop

catalina.sh start

3、tomcat224服务器安装

安装步骤同上,只是/usr/local/tomcat/conf/server.xml 添加的Context内容有点不一样

<Context docBase="test"path="/test" reloadable="true">

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

memcachedNodes="n1:192.168.61.161:11211,n2:192.168.61.161:11212"

failoverNodes="n2"

requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"

transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"

/>

</Context>

4、测试

访问http://192.168.61.161/test/test.jsp

SessionID始终是不变的,可以测试把tomcat223和tomcat224服务器的tomcat服务停止一段时间再启动,再次访问,还是之前那个SessionID,由此可见,tomcat的Session是保存在memcached上的

时间: 2024-08-25 01:54:02

Nginx+Tomcat+Memcached+kryo序列化集群Session共享的相关文章

Nginx+Tomcat7+Memcached负载均衡集群+session共享

Nginx+Tomcat7+Memcached负载均衡集群服务搭建 操作系统:CentOS6.5     本文档主要讲解,如何在CentOS6.5下搭建Nginx+Tomcat7+Memcached负载均衡集群服务器,Nginx负责负载均衡,Tomcat7负责实际服务,Memcached负责同步Tomcat7的Session,达到Session共享的目的.1.安装NginxNginx官网:http://nginx.org/下载最新稳定版本.在安装Nginx之前,需要先安装gcc. openssl

nginx+tomcat+memcached搭建服务器集群及负载均衡

在实际项目中,由于用户的访问量很大的原因,往往需要同时开启多个服务器才能满足实际需求.但是同时开启多个服务又该怎么管理他们呢?怎样实现session共享呢?下面就来讲一讲如何使用tomcat+nginx搭建服务器集群以及如何实现session共享. 环境: apache-tomcat-6.0.29+apache-tomcat-6.0.29+jdk1.6+win7(由于自己只是做了一个demo,j就没有用到服务器系统了) 1.首先我们准备两个tomcat(tomcat1,tomcat2),并将端口

nginx+tomcat+memcached配置负载均衡与session共享学习一

版本信息:nginx-1.9.11 ,WEB服务器 apache-tomcat-7.0.34-1,servlet容器 apache-tomcat-7.0.34-2, servlet容器 jdk1.6 memcached  内存对象缓存系统 首先配置 nginx信息 配置路径:nginx-1.9.11\conf\nginx.conf 配置信息   #这是基本版的 其它的优化先不提供     server {     #访问地址与端口号         listen       80;       

nginx+memcached+tomcat集群 session共享完整版

nginx+memcached+tomcat集群 session共享完整版 集群环境 1.nginx版本 nginx-1.6.2.tar.gz 2.jdk 版本 jdk-7u21-linux-x64.tar.gz 3.tomcat 版本  7.0.29 4.memcached 版本 memcached-1.4.22.tar.gz 5. CentOS 6.5 系统采用一台服务做测试 一.nginx安装 安装依赖包 yum -y install gcc gcc-c++ 1.安装pcre库 tar z

Nginx+Tomcat7(tomcat6)+Memcached集群Session共享

Nginx+Tomcat7+Memcached集群Session共享 原理: 主要是利用memcached-session-manager(下面简称msm)开源tomcat插件改变tomcat原始的session存储机制,将session的存储放到分布式缓存memcache中,从而实现对session的共享. 下载 1.      下载nginx 2.      下载tomcat7 (本文介绍的是tomcat7的session共享,如果是tomcat6,配置是不成功的,需要更换其中的jar包,m

细说tomcat之集群session共享方案

1. Tomcat Cluster官网:http://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.htmlTomcat原生支持的集群方案. <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8"> <Manager className="org.apache.catali

Apache2.2 Tomcat7 集群 session共享 [windows]

Apache2.2  Tomcat7 集群 session共享 下载: Apache2.2.apache-tomcat-7.0.42.zip.tomcat-connectors-1.2.37-windows-i386-httpd-2.2.x.zip[mod_jk] 分别解压缩Apache2.2.apache-tomcat-7.0.42.zip.tomcat-connectors-1.2.37-windows-i386-httpd-2.2.x.zip 此处:C:\Apache2.2.C:\tomc

Nginx+Tomcat+Memcached集群Session共享

提供给大家整合实例: http://download.csdn.net/detail/zld1987/9577962 cookie是怎样工作的? 例如,我们创建了一个名字为login的Cookie来包含访问者的信息,创建Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名是"Michael Jordan",同时还对所创建的Cookie的属性如path.domain.expires等进行了指定. Set-Cookie:login=Michael Jordan;path

【转】Nginx+Tomcat+Memcached集群Session共享

cookie是怎样工作的? 例 如,我们创建了一个名字为login的Cookie来包含访问者的信息,创建Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名 是“Michael Jordan”,同时还对所创建的Cookie的属性如path.domain.expires等进行了指定. Set-Cookie:login=Michael Jordan;path=/;domain=msn.com; expires=Monday,01-Mar-99 00:00:01 GMT 上面这个H