阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 6.5系统搭建Tomcat7.0.57通过msm实现session共享

111次阅读
没有评论

共计 10317 个字符,预计需要花费 26 分钟才能阅读完成。

CentOS 6.5 系统搭建 Tomcat7.0.57 通过 msm 实现 session 共享

一般实现 session 共享,最常用的一种方法就是通过 memcached-session-manager。下边我就说一下,怎么通过 memcached-session-manager 实现 session 共享。

tomcat7 实现 session 共享所需 jar 包下载

—————————————— 分割线 ——————————————

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是 www.linuxidc.com

具体下载目录在 /2015 年资料 / 2 月 /27 日 /CentOS 6.5 系统搭建 Tomcat7.0.57 通过 msm 实现 session 共享 /

下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm

—————————————— 分割线 ——————————————

首先建一个放软件的目录,进入此目录。

[root@node1 ~]# mkdir -p /taokey/tools
[root@node1 ~]# cd /taokey/tools/

2. 把下载好的 apache-tomcat-7.0.57.tar.gz 和 jdk-7u71-linux-x64.gz 软件包上传到服务器上。
[root@node1 tools]# ls
apache-tomcat-7.0.57.tar.gz  jdk-7u71-linux-x64.gz
[root@node1 tools]# tar -zxf apache-tomcat-7.0.57.tar.gz 
[root@node1 tools]# tar -zxf jdk-7u71-linux-x64.gz 
[root@node1 tools]# ls
apache-tomcat-7.0.57  jdk1.7.0_71

3. 创建 /data 目录,并且把 tomcat 改名,把 tomcat 和 jdk 移到 data 目录下。
[root@node1 tools]# mv apache-tomcat-7.0.57 node1
[root@node1 tools]# mkdir /data   
[root@node1 tools]# cp -r jdk1.7.0_71 node1 /data

4. 配置系统的 jdk 环境变量。
[root@node1 data]# tail -7 /etc/profile
Java_HOME=/data/jdk1.7.0_71
JRE_HOME=/data/jdk1.7.0_71/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
export PATH=$PATH:JAVA_HOME/bin
export JAVA_HOME
[root@node1 data]# source /etc/profile

5. 修改默认的项目路径。
[root@node1 data]# vim node1/conf/server.xml +125
<Host name=”localhost”  appBase=”/data/”  #默认的是 webapps,我修改成了 /data/ 目录。

6. 给 tomcat 默认启动和关闭脚本添加执行权限。
[root@node1 data]# cd node1/bin/
[root@node1 bin]# chmod +x startup.sh 
[root@node1 bin]# chmod +x shutdown.sh

7. 启动 tomcat,看下是否成功运行。
[root@node1 bin]# ./startup.sh 
Using CATALINA_BASE:  /data/node1
Using CATALINA_HOME:  /data/node1
Using CATALINA_TMPDIR: /data/node1/temp
Using JRE_HOME:        /data/jdk1.7.0_71/jre
Using CLASSPATH:      /data/node1/bin/bootstrap.jar:/data/node1/bin/tomcat-juli.jar
Tomcat started.
[root@node1 bin]# ps -ef | grep java
root      2036    1 83 12:41 pts/1    00:00:04 /data/jdk1.7.0_71/jre/bin/java -Djava.util.logging.config.file=/data/node1/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/data/node1/endorsed -classpath /data/node1/bin/bootstrap.jar:/data/node1/bin/tomcat-juli.jar -Dcatalina.base=/data/node1 -Dcatalina.home=/data/node1 -Djava.io.tmpdir=/data/node1/temp org.apache.catalina.startup.Bootstrap start
root      2050  1907  0 12:42 pts/1    00:00:00 grep java

8. 看下 tomcat 默认监听的端口。
[root@node1 bin]# netstat -anpt | grep java
tcp        0      0 :::8080                    :::*                        LISTEN      2036/java         
tcp        0      0 ::ffff:127.0.0.1:8005      :::*                        LISTEN      2036/java         
tcp        0      0 :::8009                    :::*                        LISTEN      2036/java

9. 在项目路径下创建一个测试网页,测试下网页是否可以打开。
[root@node1 bin]# mkdir /data/ROOT
[root@node1 bin]# touch /data/ROOT/test.html
[root@node1 bin]# echo “hello world” >/data/ROOT/test.html 
[root@node1 bin]# cat /data/ROOT/test.html
hello world
[root@node1 ~]# curl -I 192.168.1.15:8080/test.html
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Accept-Ranges: bytes
ETag: W/”12-1421038003000″
Last-Modified: Mon, 12 Jan 2015 04:46:43 GMT
Content-Type: text/html
Content-Length: 12
Date: Mon, 12 Jan 2015 04:48:16 GMT
[root@node1 ~]# wget 192.168.1.15:8080/test.html
[root@node1 ~]# cat test.html 
hello world

tomcat7.0.57 搭建完毕

第一个 tomcat 实例 node1 已经搭建完毕,tomcat 实例 node2 也按照此步骤搭建即可。tomcat 搭建比较简单,这里不再赘述。两个 tomcat 实例(node1、node2),都搭建好之后, 下面结合 memcache 和 msm 实现 session 共享。

10. 安装 memcahce。
cd /taokey/tools/
curl -O http://www.monkey.org/~provos/libevent-2.0.13-stable.tar.gz
tar -zxvf libevent-2.0.13-stable.tar.gz 
cd libevent-2.0.13-stable
./configure –prefix=/usr
make && make install
curl -O http://www.danga.com/memcached/dist/memcached-1.4.0.tar.gz
tar -zxvf memcached-1.4.0.tar.gz 
cd memcached-1.4.0
./configure –with-libevent=/usr/
make
make install
/usr/local/bin/memcached -d -m 200 -u root -c 256 -p 11211 -P /tmp/memcache.pid
 
测试 node1 和 node2 连接 memcache 是否正常。
[root@node1 ~]# telnet 192.168.1.84 11211
Trying 192.168.1.84…
Connected to 192.168.1.84.
Escape character is ‘^]’.
 
[root@node2 ~]# telnet 192.168.1.84 11211
Trying 192.168.1.84…
Connected to 192.168.1.84.
Escape character is ‘^]’.
 
经过测试,memcache 服务是没有问题。

要想实现 session 共享,需要上传 tomcat7 所需要的 memcached-session-manager 的 jar 包。

11. 这里列出了包括 tomcat 自带和实现共享 session 所需要的所有 jar 包:
[root@node1 ~]# cd /data/node1/lib/
[root@node1 lib]# ls
annotations-api.jar        jasper-el.jar                            minlog-1.2.jar                tomcat-dbcp.jar
catalina-ant.jar            jasper.jar                              msm-kryo-serializer-1.6.5.jar  tomcat-i18n-es.jar
catalina-ha.jar            javolution-5.4.3.1.jar                  reflectasm-0.9.jar            tomcat-i18n-fr.jar
catalina.jar                jsp-api.jar                              servlet-api.jar                tomcat-i18n-ja.jar
catalina-tribes.jar        kryo-1.03.jar                            spymemcached-2.10.2.jar        tomcat-jdbc.jar
couchbase-client-1.2.2.jar  kryo-serializers-0.10.jar                tomcat7-websocket.jar          tomcat-util.jar
ecj-4.4.jar                memcached-session-manager-1.6.5.jar      tomcat-api.jar                websocket-api.jar
el-api.jar                  memcached-session-manager-tc7-1.6.5.jar  tomcat-coyote.jar
[root@node1 lib]# du -sh .
8.2M    .
 
[root@node2 ~]# cd /data/node2/lib/
[root@node2 lib]# ls
annotations-api.jar        jasper-el.jar                            minlog-1.2.jar                tomcat-dbcp.jar
catalina-ant.jar            jasper.jar                              msm-kryo-serializer-1.6.5.jar  tomcat-i18n-es.jar
catalina-ha.jar            javolution-5.4.3.1.jar                  reflectasm-0.9.jar            tomcat-i18n-fr.jar
catalina.jar                jsp-api.jar                              servlet-api.jar                tomcat-i18n-ja.jar
catalina-tribes.jar        kryo-1.03.jar                            spymemcached-2.10.2.jar        tomcat-jdbc.jar
couchbase-client-1.2.2.jar  kryo-serializers-0.10.jar                tomcat7-websocket.jar          tomcat-util.jar
ecj-4.4.jar                memcached-session-manager-1.6.5.jar      tomcat-api.jar                websocket-api.jar
el-api.jar                  memcached-session-manager-tc7-1.6.5.jar  tomcat-coyote.jar
[root@node2 lib]# du -sh .
8.2M    .

12. 修改两个 tomcat 的配置文件 context.xml。
修改后的 tomcat node1 配置文件
[root@node1 ~]# cd /data/node1/conf/
[root@node1 conf]# tail context.xml 
    <!–
    <Valve className=”org.apache.catalina.valves.CometConnectionManagerValve” />
    –>
    <Manager className=”de.javakaffee.web.msm.MemcachedBackupSessionManager”
    memcachedNodes=”n1:192.168.1.84:11211″
    requestUriIgnorePattern=”.*\.(png|gif|jpg|css|js|ico|jpeg|htm|html)$”
    sessionBackupTimeout=”1800000″
    transcoderFactoryClass=”de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory”
    />
</Context>
 
修改后的 tomcat node2 配置文件
[root@node2 ~]# cd /data/node2/conf/
[root@node2 conf]# tail context.xml 
    <!–
    <Valve className=”org.apache.catalina.valves.CometConnectionManagerValve” />
    –>
    <Manager className=”de.javakaffee.web.msm.MemcachedBackupSessionManager”
    memcachedNodes=”n1:192.168.1.84:11211″
    requestUriIgnorePattern=”.*\.(png|gif|jpg|css|js|ico|jpeg|htm|html)$”
    sessionBackupTimeout=”1800000″
    transcoderFactoryClass=”de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory”
    />
</Context>

13. 修改之后,创建一个 index.jsp 测试 session 共享的文档,重启两个 tomcat 实例。
重启实例 node1。
[root@node1 ROOT]# cat index.jsp 
<html> 
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″/>
<title>Tomcat+memcached 共享 session 测试 </title> 
</head>
<body>
SessionID:<%=session.getId()%>
<BR> 
SessionIP:<%=request.getServerName()%>
<BR> 
SessionPort:<%=request.getServerPort()%>
<BR>
<% 
out.println(“This is Tomcat Server 8081.”);
%>
%</body> 
%</html>
/data/node1/bin/shutdown.sh
[root@node1 ~]# ps -ef | grep java
root      9063  1907  0 17:20 pts/1    00:00:00 grep java
/data/node1/bin/startup.sh
[root@node1 ~]# netstat -anpt | grep 8080
tcp        0      0 :::8080                    :::*                        LISTEN      9072/java         
tcp        0      0 ::ffff:127.0.0.1:8080      ::ffff:127.0.0.1:40496      TIME_WAIT  –

14. 重启实例 tomcat node2。
[root@node2 ROOT]# cat index.jsp 
<html> 
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″/>
<title>Tomcat+memcached 共享 session 测试 </title> 
</head>
<body>
SessionID:<%=session.getId()%>
<BR> 
SessionIP:<%=request.getServerName()%>
<BR> 
SessionPort:<%=request.getServerPort()%>
<BR>
<% 
out.println(“This is Tomcat Server 8081.”);
%>
%%</body> 
%%</html>
[root@node2 ~]# /data/node2/bin/shutdown.sh 
[root@node2 ~]# ps -ef | grep java
root      2830  2081  0 17:22 pts/0    00:00:00 grep java
[root@node2 ~]# /data/node2/bin/startup.sh 
[root@node2 ~]# netstat -anpt | grep 8080
tcp        0      0 :::8080                    :::*                        LISTEN      2840/java

15. 访问 nginx 代理的服务器 IP,192.168.1.15

CentOS 6.5 系统搭建 Tomcat7.0.57 通过 msm 实现 session 共享

16. 把 node1 停掉,然后再测试 192.168.1.15
[root@node1 ~]# /data/node1/bin/shutdown.sh 
Using CATALINA_BASE:  /data/node1
Using CATALINA_HOME:  /data/node1
Using CATALINA_TMPDIR: /data/node1/temp
Using JRE_HOME:        /data/jdk1.7.0_71/jre
Using CLASSPATH:      /data/node1/bin/bootstrap.jar:/data/node1/bin/tomcat-juli.jar
[root@node1 ~]# ps -ef | grep java
root      9132  1907  0 17:29 pts/1    00:00:00 grep java

17.session 信息还是原来的,好现在咱们开启 node1, 关闭 node2, 在测试一下,session 信息、
[root@node1 ~]# /data/node1/bin/startup.sh 
Using CATALINA_BASE:  /data/node1
Using CATALINA_HOME:  /data/node1
Using CATALINA_TMPDIR: /data/node1/temp
Using JRE_HOME:        /data/jdk1.7.0_71/jre
Using CLASSPATH:      /data/node1/bin/bootstrap.jar:/data/node1/bin/tomcat-juli.jar
Tomcat started.
[root@node1 ~]# netstat -anpt | grep java
tcp        0      0 :::8080                    :::*                        LISTEN      9144/java         
tcp        0      0 ::ffff:127.0.0.1:8005      :::*                        LISTEN      9144/java         
tcp        0      0 :::8009                    :::*                        LISTEN      9144/java         
tcp        0      0 ::ffff:192.168.1.15:58421  ::ffff:192.168.1.84:11211  ESTABLISHED 9144/java         
tcp        0      0 ::ffff:192.168.1.15:58418  ::ffff:192.168.1.84:11211  ESTABLISHED 9144/java         
tcp        0      0 ::ffff:192.168.1.15:58419  ::ffff:192.168.1.84:11211  ESTABLISHED 9144/java         
tcp        0      0 ::ffff:192.168.1.15:58420  ::ffff:192.168.1.84:11211  ESTABLISHED 9144/java     
[root@node2 ~]# /data/node2/bin/shutdown.sh 
Using CATALINA_BASE:  /data/node2
Using CATALINA_HOME:  /data/node2
Using CATALINA_TMPDIR: /data/node2/temp
Using JRE_HOME:        /data/jdk1.7.0_71/jre
Using CLASSPATH:      /data/node2/bin/bootstrap.jar:/data/node2/bin/tomcat-juli.jar
[root@node2 ~]# ps -ef | grep java
root      2896  2081  0 17:31 pts/0    00:00:00 grep java

session 共享成功实现

RedHat Linux 5.5 安装 JDK+Tomcat 并部署 Java 项目  http://www.linuxidc.com/Linux/2015-02/113528.htm

Tomcat 权威指南 (第二版)(中英高清 PDF 版 + 带书签)  http://www.linuxidc.com/Linux/2015-02/113062.htm

Tomcat 安全配置与性能优化 http://www.linuxidc.com/Linux/2015-02/113060.htm

Linux 下使用 Xshell 查看 Tomcat 实时日志中文乱码解决方案 http://www.linuxidc.com/Linux/2015-01/112395.htm

CentOS 64-bit 下安装 JDK 和 Tomcat 并设置 Tomcat 开机启动操作步骤 http://www.linuxidc.com/Linux/2015-01/111485.htm

CentOS 6.5 下安装 Tomcat  http://www.linuxidc.com/Linux/2015-01/111415.htm

Tomcat 的详细介绍 :请点这里
Tomcat 的下载地址 :请点这里

更多 CentOS 相关信息见 CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计10317字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中