TOMCAT实验

news/2024/9/17 7:13:25/ 标签: tomcat, java

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 instart)/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_102">二、结合反向代理实现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/
拷贝后浏览器访问
在这里插入图片描述
session作用
在这里插入图片描述
cookie保存客户端,session保存服务器
浏览器关闭,cookie消失
默认下,tomcat可以对session进行复制,可以使用两个tomcat从而实现session的稳定性
编辑内容完成代理,浏览器访问查询
在这里插入图片描述

在这里插入图片描述
负载均衡
在这里插入图片描述
在这里插入图片描述
随着刷新,实现在10与20不断变换
在这里插入图片描述
在这里插入图片描述
但是,由于是两台机器进行tomcat配置,提交内容无法进行保存。
接下来将针对该问题进行会话保持
在这里插入图片描述
此时再刷新,会话也不会发生变化
在这里插入图片描述
此时提交数据,数据会得到保存
在这里插入图片描述
但是现在还有一个问题,如果我新开一个界面,他并没有完成负载均衡,还是10地址进行hash算法(原因是我们是同一个浏览器,原地址hash,会自动跳转到10端)
通俗来讲就是,原先是ip_hash,同一台电脑肯定访问同一个服务器,但是我们要对不同的name,即test1与test2不同来实现负载均衡,方法:对cookie进行hash算法。
在这里插入图片描述
在这里插入图片描述
负载均衡完毕

2.3 Session的会话保持

在这里插入图片描述
此刻如果把10挂了那么数据也将丢失
在这里插入图片描述
接下来将使用memcache进行数据保存
在这里插入图片描述
下载memcache软件包
在这里插入图片描述
因为需要tomcat去连接,所以需要去配置文件中编辑
在这里插入图片描述

在这里插入图片描述
改完重启
含义:在所有网络上都可将11211端口连接
20机同理
重启后进行端口查询
在这里插入图片描述
下载telnet安装包实现连接
在这里插入图片描述
在这里插入图片描述
连接后可以实现编辑,报错原因:限制2个字节。
在这里插入图片描述
add添加 get查询
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置完浏览器访问,确认无误
在这里插入图片描述
现在在20上,把20关闭重新尝试
在这里插入图片描述
说明交叉存储成功


http://www.ppmy.cn/news/1521785.html

相关文章

软件测试 - 性能测试 (概念)(并发数、吞吐量、响应时间、TPS、QPS、基准测试、并发测试、负载测试、压力测试、稳定性测试)

一、性能测试 目标:能够对个人编写的项目进行接口的性能测试。 一般是功能测试完成之后,最后做性能测试。性能测试是一个很大的范围,在学习过程中很难直观感受到性能。 以购物软件为例: 1)购物过程中⻚⾯突然⽆法打开…

Java项目: 基于SpringBoot+mysql+mybatis校园管理系统(含源码+数据库+答辩PPT+毕业论文)

一、项目简介 本项目是一套基于SpringBootmysql校园管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、功能齐…

visual studio 2022更新以后,之前的有些工程编译出错,升级到Visual studio Enterprise 2022 Preview解决

系列文章目录 文章目录 系列文章目录前言一、解决方法 前言 今天遇到一个问题:visual studio 2022升级成预览版以后,之前的有些工程编译出错。首先代码、项目设置都没有改变,只是更新了visual studio 2022。 在编译工程时,编译器…

【HTTP、Web常用协议等等】前端八股文面试题

HTTP、Web常用协议等等 更新日志 2024年9月5日 —— 什么情况下会导致浏览器内存泄漏? 文章目录 HTTP、Web常用协议等等更新日志1. 网络请求的状态码有哪些?1)1xx 信息性状态码2)2xx 成功状态码3)3xx 重定向状态码4&…

2024国赛数学建模评价类算法解析,2024国赛数学建模C题思路模型代码解析

2024国赛数学建模评价类算法解析,2024国赛数学建模C题思路模型代码解析:9.5开赛后第一时间更新,更新见文末名片 1 层次分析法 基本思想 是定性与定量相结合的多准则决策、评价方法。将决策的有关元素分解成目标层、准则层和方案层&#xff…

UDP通信实现

目录 前言 一、基础知识 1、跨主机传输 1、字节序 2、主机字节序和网络字节序 3、IP转换 2、套接字 3、什么是UDP通信 二、如何实现UDP通信 1、socket():创建套接字 2、bind():绑定套接字 3、sendto():发送指定套接字文件数据 4、recvfrom():接收指定地址信息的数据 三…

2024.9.6

1> 手写unique_ptr智能指针 #include <iostream> //#include <memory> using namespace std; //unique_ptr<AA> p0(new AA("西施"));// 分配内存并初始化。 template <typename T> class unique_ptr { public:explicit unique_ptr(T p) …

当天审稿,当天上线,9月检索!

各领域CNKI知网普刊&#xff0c;最快一期预计下周送检&#xff0c;最快1天上线 领域广&#xff0c;计算机&#xff0c;社科&#xff0c;医学等各个方向都能收 包检索&#xff0c;可提供期刊部发票 知名出版社英文普刊 NO.1、Food Science and Nutrition Studies ISSN: 2573…

Linux——redis主从复制、哨兵模式

一、redis 的安全加固&#xff1a; 对redis数据库访问的角度 auth // 验证登录redis 数据库的用户acl // 设置redis用户的权限将配置完成的ACL策略写入配置文件 config rewrite //目前redis生效的配置全部写入到默认配置文件的尾部写入到acl文件中&#xff0c;在加载配置文件时…

开源通用验证码识别OCR —— DdddOcr 源码赏析(二)

文章目录 前言DdddOcr分类识别调用识别功能classification 函数源码classification 函数源码解读1. 分类功能不支持目标检测2. 转换为Image对象3. 根据模型配置调整图片尺寸和色彩模式4. 图像数据转换为浮点数据并归一化5. 图像数据预处理6. 运行模型&#xff0c;返回预测结果 …

DWPD指标:为何不再适用于大容量SSD?

固态硬盘&#xff08;Solid State Drives, SSD&#xff09;作为计算机行业中最具革命性的技术之一&#xff0c;凭借其更快的读写速度、增强的耐用性和能效&#xff0c;已经成为大多数用户的首选存储方案。然而&#xff0c;如同任何其他技术一样&#xff0c;SSD也面临自身的挑战…

C++ 栈的使用

在 C++ 中,栈(Stack)是一种后进先出(LIFO,Last In First Out)的数据结构,表示最后插入的元素最先被移除。C++ 提供了 STL(Standard Template Library)中的 std::stack 容器适配器来方便使用栈。 std::stack 的使用 std::stack 是一个容器适配器,它默认使用 std::de…

接口请求400

接口请求400 在Web开发中&#xff0c;接口请求错误是开发者经常遇到的问题之一。其中&#xff0c;400错误&#xff08;Bad Request&#xff09;尤为常见&#xff0c;它表明发送到服务器的请求有误或不能被服务器理解。本文将深入探讨接口请求400错误&#xff0c;从常见报错问题…

基于纠错码的哈希函数构造方案

一、前言 随着大数据时代的到来&#xff0c;交通数据量急剧增加&#xff0c;由此带来的交通安全问题日益凸显。传统的驾驶人信用管理系统在数据存储和管理上存在着诸多不足之处&#xff0c;例如中心化存储方案无法有效地进行信用存证及数据溯源。区块链技术以其去中心化和不可…

python网络爬虫(零)——认识网页结构

网页一般有三部分组成&#xff0c;分别是HTML&#xff08;超文本标记语言&#xff09;、CSS&#xff08;层叠样式表&#xff09;、JScript&#xff08;活动脚本语言&#xff09; 1.HTML HTML是整个网页的结构&#xff0c;相当于整个网站的框架。带“<”“>”符号都属于H…

Trying to update a textarea with string from an OpenAI request

题意&#xff1a;把从 OpenAI 请求中得到的字符串更新到一个文本区域中。 问题背景&#xff1a; Can anyone assist me with an issue Im facing. Im trying to append a string received back from an OpenAI request to an exisitng textarea element. The requested string…

设计之道:ORM、DAO、Service与三层架构的规范探索

引言&#xff1a; 实际开发中&#xff0c;遵守一定的开发规范&#xff0c;不仅可以提高开发效率&#xff0c;还可以提高项目的后续维护性以及项目的扩展性&#xff1b;了解一下本博客的项目设计规范&#xff0c;对项目开发很有意义 一、ORM思想 ORM&#xff08;Object-Relation…

P0.9/P1.25全倒装共阴节能COB超微小间距LED显示屏已抢占C位

COB&#xff08;Chip on Board&#xff09;技术最早发源于上世纪60年代&#xff0c;是将LED芯片直接封装在PCB电路板上&#xff0c;并用特种树脂做整体覆盖。COB实现“点” 光源到“面” 光源的转换。点间距有P0.3、P0.4、P0.5、P0.6、P0.7、P0.9、P1.25、P1.538、P1.5625、P1.…

pytorch计算张量中三维向量的欧式距离

如果 X 是一个包含多个三维向量的张量&#xff0c;形状为 [b, n, 3]&#xff0c;其中 b 是批次大小&#xff0c;n 是每个批次中的向量数量&#xff0c;那么可以使用类似的广播机制来计算同一批次内不同位置的三维向量之间的欧式距离。 以下是具体实现步骤&#xff1a; 扩展张量…

时序预测 | 基于DLinear+PatchTST多变量时间序列预测模型(pytorch)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 DLinearPatchTST多变量时间序列 dlinear,patchtst python代码&#xff0c;pytorch架构 适合功率预测&#xff0c;风电光伏预测&#xff0c;负荷预测&#xff0c;流量预测&#xff0c;浓度预测&#xff0c;机械领域预…