一、Tomcat介绍
Tomcat
服务器是一个免费的开放源代码的
Web
应用服务器,属于轻量级应用服务器,在中小型系统和 并发访问用户不是很多的场合下被普遍使用,Tomcat
具有处理
HTML
页面的功能,它还是一个
Servlet
和 JSP容器
起始于
SUN
公司的一个
Servlet
的参考实现项目
Java Web Server
,开发者是
James Duncan Davidson
, 在1999
年,将项目贡献给了
apache
软件基金会(
ASF
),和
ASF
现有的项目
JServ
合并,并开源成为顶级 项目 Tomcat 仅仅实现了
Java EE
规范中与
Servlet
、
JSP
相关的类库,是
JavaEE
不完整实现。1999年发布初始版本是
Tomcat 3.0
,实现了
Servlet 2.2
和
JSP 1.1
规范。 Tomcat 4.x发布时,内建了
Catalina
(
Servlet
容器)和
Jasper
(
JSP engine
)等 ,当前 Tomcat
的正式版本已经更新到
10.0.x
版本,但当前企业中主流版本为
8.x
和
7.x。
二、结合nginx反向代理实现tomcat部署
2.1.基本配置
实验环境
主机名 | ip |
nginx | 172.25.254.101 |
tomcat1 | 172.25.254.10 |
tomcat2 | 172.25.254.20 |
1、安装java环境
yum install java-1.8.0-openjdk.x86_64 -y
2、两台主机上传并解压tomcat
[root@tomcat1 ~]# tar zxf apache-tomcat-9.0.93.tar.gz -C /usr/local/
[root@tomcat1 ~]# ln -s /usr/local/apache-tomcat-9.0.93/ /usr/local/tomcat
[root@tomcat1 ~]# /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
输入172.25.254.10:8080查看tomcat
3、生成主配置文件:
[root@tomcat1 ~]# vim /usr/local/tomcat/conf/tomcat.conf
[root@tomcat1 ~]# useradd -s /sbin/nologin -M tomcat
[root@tomcat1 ~]# chown -R tomcat.tomcat /usr/local/tomcat/
4、 生成启动文件:
[root@tomcat1 ~]# vim /lib/systemd/system/tomcat.service
[root@tomcat1 ~]# systemctl daemon-reload
[root@tomcat1 ~]# systemctl enable --now tomcat
Created symlink /etc/systemd/system/multi-user.target.wants/tomcat.service → /usr/lib/systemd/system/tomcat.service.
另一台172.25.254.20可以拷贝10的文件
[root@tomcat1 apache-tomcat-9.0.93]# rsync -ar /usr/local/apache-tomcat-9.0.93 root@172.25.254.20:/usr/local/apache-tomcat-9.0.93
[root@tomcat1 ~]# rsync -ar /lib/systemd/system/tomcat.service root@172.25.254.20:/lib/systemd/system/tomcat.service
2.2.nginx前置实现tomcat的负载均衡
1、两台tomcat创建jsp文件:
[root@tomcat1 ~]# cp test.jsp /usr/local/tomcat/webapps/ROOT/
2、在nginx编辑子配置文件:
[root@Nginx ~]# vim /usr/local/nginx/conf.d/vhosts.conf
3、测试
浏览器edge输入wwwgaoyingjie.org/test.jsp:访问的主机不变
当另一台浏览器访问www.gaoyingjie.org/test.jsp时候,因为是基于cookie的哈希,所以会话重新生成,主机ip会改变。
三、利用memcache实现tomcat会话保持
当一台tomcat1主机挂掉后,会话存储在memcache2上,那tomcat2会找memcache2继续当前会话。
1、两台tomcat下载memcache,并且上传所需文件
kryo-3.0.3.jarasm-5.2.jarobjenesis-2.6.jarreflectasm-1.11.9.jarminlog-1.3.1.jarkryo-serializers-0.45.jarmsm-kryo-serializer-2.3.2.jarmemcached-session-manager-tc9-2.3.2.jarspymemcached-2.12.3.jarmemcached-session-manager-2.3.2.jar
2、编辑memcache配置文件
vim /etc/sysconfig/memcached
3、编辑tomcat配置wen
vim /usr/local/tomcat/conf/context.xml
4、浏览器访问:www.gaoyingjie.org/test.jsp
访问到tomcat1,提交数据
5、测试
当tomcat1挂掉后,连接到tomcat2,会话保持,提交的数据还在。
[root@tomcat1 jar]# systemctl stop tomcat.service