TOMCAT实验

TOMCAT

一、TOMCAT功能介绍

1.1 安装TOMCAT

配置Java环境

复制代码
[root@tomcat1 ~]#  yum install java-1.8.0-openjdk.x86_64 -y
[root@tomcat2 ~]#  dnf install java-1.8.0-openjdk.x86_64 -y

Java环境被存放在 /etc/alternatives/目录下

复制代码
[root@tomcat1 ~]# ls /etc/alternatives/jre_openjdk

解压tomcat安装包到/usr/local/目录下,并制作软连接tomcat

复制代码
[root@tomcat1 ~]# tar zxf apache-tomcat-9.0.93.tar.gz -C /usr/local/
[root@tomcat1 ~]# cd /usr/local/
[root@tomcat1 local]# ls
apache-tomcat-9.0.93  bin  etc  games  include  lib  lib64  libexec  sbin  share  src
[root@tomcat1 local]# ln -s apache-tomcat-9.0.93 tomcat
[root@tomcat1 local]# ls
apache-tomcat-9.0.93  bin  etc  games  include  lib  lib64  libexec  sbin  share  src  tomcat
[root@tomcat1 local]# cd tomcat/
[root@tomcat1 tomcat]# ls
bin  BUILDING.txt  conf  CONTRIBUTING.md  lib  LICENSE  logs  NOTICE  README.md  RELEASE-NOTES  RUNNING.txt  temp  webapps  work

[root@tomcat1 tomcat]# ls
bin  BUILDING.txt  conf  CONTRIBUTING.md  lib  LICENSE  logs  NOTICE  README.md  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
bin->执行命令 conf->配置文件 lib->库 logs->日志 temps->临时文件 webapps->默认发布目录 work->工作目录

启动tomcat,查看端口

复制代码
[root@tomcat1 bin]# ./startup.sh
[root@tomcat1 bin]# netstat -anltupe | grep java

浏览器访问

1.2 生成TOMCAT的启动文件

先进入conf文件中,看有没有相关编辑文件

没有,新建conf配置文件

复制代码
[root@tomcat1 conf]# vim tomcat.conf
JAVA_HOME=/etc/alternatives/jre_openjdk

内容注释:JAVA配置环境

复制代码
[root@tomcat1 conf]# vim /lib/systemd/system/tomcat.service
[Unit]
Description=Tomcat --- 服务名称
#After=syslog.target network.target remote-fs.target nss-lookup.target
After=syslog.target network.target --- 启动必须条件
[Service]
Type=forking --- 启动函数
EnvironmentFile=/usr/local/tomcat/conf/tomcat.conf ---配置文件
ExecStart=/usr/local/tomcat/bin/startup.sh --- 开启脚本
ExecStop=/usr/local/tomcat/bin/shutdown.sh --- 关闭脚本
PrivateTmp=true
User=tomcat
Group=tomcat
[Install]
WantedBy=multi-user.target

编写执行脚本

复制代码
[root@tomcat1 conf]# vim/lib/systemd/system/tomcat.service
#!/bin/bash
case $1 in
  start)
  /usr/local/tomcat/bin/startup.sh
  ;;
  stop)
  /usr/local/tomcat/bin/shutdown.sh
  ;;
esac

添加可执行权限
[root@tomcat1 conf]# chmod +x /usr/bin/tomcat

编写完脚本后,也可将原先配置文件变为如下内容

建立tomcat用户

启动tomcat却出现报错,分析报错原因

journalctl -xe查看

报错信息中发现Permission denied 应该是拒绝访问,也就是没有权限

需要去做文件生成,但是并没有权限

加权后再重启就成功了

配置完成后,将node1的配置文件内容发送到node2

node2进行下列编辑

然后启动后查询

二、结合反向代理实现tomcat部署

2.1 常见部署方式

2.2 负载均衡的实现

将test.jsp拷贝,同时发送给tomcat2主机

root@tomcat1 \~\]# cp test.jsp /usr/local/tomcat/webapps/ROOT/ \[root@tomcat1 \~\]# scp test.jsp root@172.25.254.20:/usr/local/tomcat/webapps/ROOT/ 拷贝后浏览器访问 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/3cc642f0c76241f2b4e3643eeee15a17.png) session作用 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/f01f878acbb94b36b3203422a46eee60.png) cookie保存客户端,session保存服务器 浏览器关闭,cookie消失 默认下,tomcat可以对session进行复制,可以使用两个tomcat从而实现session的稳定性 编辑内容完成代理,浏览器访问查询 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/e953b992ec244da98bdea94bb7d984cd.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/e2b7280787b9492ba2dae6aad2deaa32.png) 负载均衡 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/e5558ed7980e48edba3290a7511d0b1b.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/711aed26bc734484b4cd59743bf838cc.png) 随着刷新,实现在10与20不断变换 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/c7b104c58cd749c090211b0da755ae05.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/99707dd3f5b54c8e9636a760d3930e3f.png) 但是,由于是两台机器进行tomcat配置,提交内容无法进行保存。 接下来将针对该问题进行会话保持 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a07da9b7afe2477391b35dada75b2f7e.png) 此时再刷新,会话也不会发生变化 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/c904a2ec6e314944866735bfa9679af3.png) 此时提交数据,数据会得到保存 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/5f95d309faf24b78a8d0aaf7ff69e654.png) 但是现在还有一个问题,如果我新开一个界面,他并没有完成负载均衡,还是10地址进行hash算法(原因是我们是同一个浏览器,原地址hash,会自动跳转到10端) 通俗来讲就是,原先是ip_hash,同一台电脑肯定访问同一个服务器,但是我们要对不同的name,即test1与test2不同来实现负载均衡,方法:对cookie进行hash算法。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/206c887307964d4cb2547439de8a870d.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/521ce9aaf2014c40bfde6c56cd1aa9e7.png) 负载均衡完毕 #### 2.3 Session的会话保持 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7521018c51d0411ea7a5f2dbf96181a2.png) 此刻如果把10挂了那么数据也将丢失 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/93ea82f9c3eb4bd4b63a8358b1095860.png) 接下来将使用memcache进行数据保存 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/65e497259bda4a2e8b9611485d302679.png) 下载memcache软件包 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a4a6e19eb9704dbe968674d6c64d0dd5.png) 因为需要tomcat去连接,所以需要去配置文件中编辑 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/47974467b2a848a1a7ae9396623efc85.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/9a1233c329f44e49b5d590c590c477dc.png) 改完重启 含义:在所有网络上都可将11211端口连接 20机同理 重启后进行端口查询 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1b5f2f84306445e4b9046504ee30c3cc.png) 下载telnet安装包实现连接 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/fe67599f9b9f4b00a2624d5d910908fd.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/974833a8519a486db0214e1533a374c6.png) 连接后可以实现编辑,报错原因:限制2个字节。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/eee9626db5a44e8b9d293f10b0e9c023.png) add添加 get查询 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/811614e57ba94d77acbb5d34e48b6e9f.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/aec59c14e8cb43a4bbc0ef6ea924e3a7.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/86933545f5d140d4abfb025f7555a3bc.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/70c053c887584d5da317c94446d9c54a.png) 配置完浏览器访问,确认无误 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/cc52ab4e0d25468a920468a00b74cba8.png) 现在在20上,把20关闭重新尝试 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/5f05604b8a1244abb994b7cdcddeca92.png) 说明交叉存储成功

相关推荐
李慕婉学姐3 小时前
【开题答辩过程】以《基于JAVA的校园即时配送系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·开发语言·数据库
奋进的芋圆4 小时前
Java 延时任务实现方案详解(适用于 Spring Boot 3)
java·spring boot·redis·rabbitmq
sxlishaobin5 小时前
设计模式之桥接模式
java·设计模式·桥接模式
model20055 小时前
alibaba linux3 系统盘网站迁移数据盘
java·服务器·前端
荒诞硬汉5 小时前
JavaBean相关补充
java·开发语言
提笔忘字的帝国5 小时前
【教程】macOS 如何完全卸载 Java 开发环境
java·开发语言·macos
2501_941882485 小时前
从灰度发布到流量切分的互联网工程语法控制与多语言实现实践思路随笔分享
java·开发语言
華勳全栈6 小时前
两天开发完成智能体平台
java·spring·go
alonewolf_996 小时前
Spring MVC重点功能底层源码深度解析
java·spring·mvc
沛沛老爹6 小时前
Java泛型擦除:原理、实践与应对策略
java·开发语言·人工智能·企业开发·发展趋势·技术原理