使用Tomcat设置Session

Session共享

基本概念

Session:存储在服务器端,保存用户名、密码等会话信息

Cookies:由服务器下发给客户端,保存在客户端的一个文件里。

  保存的内容主要包括:SessionID、帐号名,过期时间,路径和域

使用Tomcat设置Session

使用4台RHEL7虚拟机,其中一台作为Nginx前端调度器服务器(eth0:192.168.4.5,eth1:172.16.2.5)、两台虚拟机部署为Tomcat服务器,分别为Web1服务器(192.168.2.100)和Web2服务器(192.168.2.200),另外一台作为测试用的Linux客户机(172.16.4.100),拓扑如图所示。

步骤一:部署前端Nginx调度服务器

1)使用源码安装nginx软件

[root@Proxy~]# yum  -y  install  pcre pcre-devel openssl-devel

[root@Proxy~]# tar -zxvf nginx-1.8.0.tar.gz

[root@Proxy~]# cd nginx-1.8.0

[[email protected]]# ./configure --prefix=/usr/local/nginx

[[email protected]]# make && make install

2)修改Nginx配置文件

Nginx配置文件中,通过upstream定义后端服务器地址池,默认调度策略为轮询,使用proxy_pass调用upstream定义的服务器地址池:

[root@Proxy~]# vim /usr/local/nginx/conf/nginx.conf

.. ..

upstream tomcatgrp  {

        server 192.168.2.100:8080;     //Tomcat服务器IP、端口

        server 192.168.2.200:8080;

  }

 server  {

                            listen       80;

                            server_name  localhost;

          location  /  {

              proxy_pass http://tomcatgrp;

            root   html;

            index  index.html index.htm;

          }

}

3)启动Nginx服务

[root@Proxy~]# /usr/local/nginx/sbin/nginx 

或者# /usr/local/nginx/sbin/nginx -t 

# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

步骤二:部署Tomcat

注意:以下部署Tomcat的操作,需要在两台后端服务器做相同的操作,下面我们以一台Web1服务器(192.168.2.100)为例,对Web2服务器执行相同操作即可。

1)安装jdk环境

[root@Web1~]# yum –y install java-1.8.0-openjdk

安装jdk #rpm -ivh jdk-……

检验jdk #java- -version

2)安装tomcat软件

[root@Web1~]# tar -zxvf apache-tomcat-8.0.30.tar.gz 

[root@Web1~]# mv apache-tomcat-8.0.30   /usr/local/tomcat

3)启动tomcat服务,并查看端口信息

[root@Web1~]# /usr/local/tomcat/bin/shutdown.sh         //停止tomcat

[root@Web1~]# /usr/local/tomcat/bin/startup.sh          //启动tomcat

[root@Web1~]# netstat -utnalp | grep :8080    //java

4)创建JSP测试页面,要求页面可以显示Session ID信息

通过在页面代码中添加JSP语句<%String s = session.getId();%>即可:

[root@Proxy~]# ~]# vim /usr/local/tomcat/webapps/ROOT/test.jsp

<html>

        <body bgcolor="red">                                //指定网页背景颜色

            <center>

            <%String s = session.getId();%>      //获取SessionID

              <%=s%>

            <h1>tomcatA</h1>            //固定字串信息,Web2的信息应该为tomcatB

            </center>

        </body>

</html>

步骤三:客户端访问测试效果

1)客户端使用浏览器访问测试页面

[root@client~]# firefox http://192.168.4.5/test.jsp

客户端两次访问的页面,应该对应的是Web1和Web2服务器返回的不同页面及不同的Session ID信息。

Tomcat实现Session共享

步骤一:构建memcached服务

1)安装Memcached服务

[root@Proxy~]# yum –y install memcached

2)启动服务并查看网络连接状态验证是否开启成功:

[root@Proxy~]# systemctl start memcached

[root@Proxy~]# netstat  -anptu  |  grep memcached    //端口号:11211

步骤二:在Tomcat服务器上部署msm(memcached-session-manager)实现session会话共享

注意:这些操作在两台后端Web服务器上均需要执行,以下操作以Web1(192.168.2.100)服务器为例。

1)安装msm

[root@Web1~]# cd  lnmp-soft/session

[root@Web1 session]# ls *.jar

[root@Web1 session]# cp *.jar /usr/local/tomcat/lib/

步骤三:修改Tomcat配置文件/usr/local/tomcat/conf/context.xml,连接memcached服务器,找到IP修改指向服务器地址

[root@Web1~]# ~]# vim  /usr/local/tomcat/conf/context.xml

<Context>

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

    memcachedNodes="mem1:192.168.2.5:11211"

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

transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory"/>

</Context>

注意:也可用[root@Web1~]# cd  lnmp-soft/session

    [root@Web1 session]# cp context.xml /usr/local/tomcat/conf/

[root@localhost ~]# /usr/local/tomcat/bin/shutdown.sh     //停止tomcat

[root@localhost ~]# /usr/local/tomcat/bin/startup.sh      //启动tomcat

步骤三:客户端测试

客户端使用浏览器访问两台不同的Web服务器。最终可以获得相关的Session ID信息。

——页面在变sessionID不变(nignx负载均衡)

猜你喜欢

转载自blog.csdn.net/jsut_rick/article/details/78288256