一、TOMCAT部署
功能介绍:
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和 并发访问用户不是很多的场合下被普遍使用,Tomcat 具有处理HTML页面的功能,它还是一个Servlet和 JSP容器。
实验环境:
nginx主机:172.25.254.100
tomcat-node1:172.25.254.10
tomcat-node2:172.25.254.20
安装java环境
[root@tomcat-node2 ~]# yum install java-1.8.0-openjdk.x86_64 -y
安装并启动tomcat
[root@tomcat-node2 ~]# tar zxf apache-tomcat-9.0.91.tar.gz -C /usr/local/
[root@tomcat-node2 ~]# ln -s /usr/local/apache-tomcat-9.0.91/ /usr/local/tomcat
[root@tomcat-node2 ~]# /usr/local/tomcat/bin/startup.sh
查看端口
[root@tomcat-node2 ~]# netstat -antlupe | grep java
访问tomcat
生成tomcat的主配置文件
[root@tomcat-node2 ~]# vim /usr/local/tomcat/conf/tomcat.conf
[root@tomcat-node2 ~]# cat /usr/local/tomcat/conf/tomcat.conf JAVA_HOME=/etc/alternatives/jre_openjdk
建立用户并加权限
[root@tomcat-node2 ~]# useradd -s /sbin/nologin -M tomcat
[root@tomcat-node2 ~]# chown -R tomcat.tomcat /usr/local/tomcat
[root@tomcat-node2 ~]# chmod -R 777 /usr/local/tomcat
生成启动文件
[root@tomcat-node2 ~]# vim /lib/systemd/system/tomcat.service
[root@tomcat-node2 bin]# systemctl daemon-reload
[root@tomcat-node2 bin]# systemctl enable --now tomcat
二、实现tomcat中的负载均衡
在tomcat主机上
[root@tomcat-node1 ~]# cp test.jsp /usr/local/tomcat/webapps/ROOT
在nginx主机上
[root@nginx ~]# vim /usr/local/nginx/conf.d/vhost.conf
测试,访问http://www.wxq.org/test.jsp
三、memcached安装
[root@tomcat-node1 ~]# yum install memcached -y
[root@tomcat-node1 ~]# vim /etc/sysconfig/memcached
开启memcache服务
四、共享服务器
1.msm介绍
msm(memcached session manager)提供将Tomcat的session保持到memcached可以实现高可用。 项目早期托管在google code,目前在Github (GitHub - magro/memcached-session-manager: A tomcat session manager that backups sessions in memcached and pulls them from there if asked for unknown sessionsA tomcat session manager that backups sessions in memcached and pulls them from there if asked for unknown sessions - magro/memcached-session-managerhttps://github.com/magro/memcached-session-manager )
支持Tomcat的 6.x、7.x、8.x、9.x
1.Tomcat的Session管理类,Tomcat版本不同
memcached-session-manager-2.3.2.jar
memcached-session-manager-tc9-2.3.2.jar
2.Session数据的序列化、反序列化类
官方推荐kyro
在webapp中WEB-INF/lib/下
3.驱动类
memcached(spymemcached.jar)
Redis(jedis.jar)
2.安装
将spymemcached.jar、memcached-session-manage、kyro相关的jar文件都放到Tomcat的lib目录 中,这个目录是 $CATALINA_HOME/lib/ ,对应本次安装就是/usr/local/tomcat/lib。
在两台tomcat主机中
下载相关jar包到/usr/local/tomcat/lib/目录
t1和m1部署可以在一台主机上,t2和m2部署也可以在同一台。 当新用户发请求到Tomcat1时, Tomcat1生成session返回给用户的同时,也会同时发给memcached2备 份。即Tomcat1 session为主session,memcached2 session为备用session,使用memcached相当于 备份了一份Session。如果Tomcat1发现memcached2 失败,无法备份Session到memcached2,则将Sessoin备份存放在 memcached1中。
3.tomcat配置
在两台tomcat主机中,修改配置
[root@tomcat-node1 lib]# vim /usr/local/tomcat/conf/context.xml
在nginx主机中,修改nginx配置
[root@nginx ~]# vim /usr/local/nginx/conf.d/vhost.conf
4.测试
浏览器访问 http://www.wxq.org/test.jsp
填写信息
在m2被停止后继续提交信息,可以读取到之前的会话信息