使用Tomcat设置Session
Session共享基本概念Session:存储在服务器端,保存用户名、密码等会话信息Cookies:由服务器下发给客户端,保存在客户端的一个文件里。 保存的内容主要包括:SessionID、帐号名,过期时间,路径和域使用Tomcat设置Session使用4台RHEL7虚拟机,其中一台作为Nginx前端调度器服务器(eth0:192.168.4.5,eth1:172.16....
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
[root@Proxynginx-1.8.0]# ./configure --prefix=/usr/local/nginx
[root@Proxynginx-1.8.0]# 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负载均衡)
更多推荐
所有评论(0)