Tomcat运维

目录

一、Tomcat简介

二、系统环境说明

1、关闭防火墙,selinux

 2、安装JDK

3、安装Tomcat

三、Tomcat目录介绍

1、tomcat主目录介绍

2、webapps目录介绍

3、Tomcat配置介绍(conf)

4、Tomcat的管理

四、Tomcat 配置管理页面(了解)

server.xml配置文件

五、WEB站点部署

1、使用war包部署web站点

2、自定义默认网站目录

六、Tomcat多实例配置

 1、复制程序文件

2、启动tomcat多实例

3、负载均衡配置


一、Tomcat简介

Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。

Tomcat和Nginx、Apache(httpd)、Web服务器一样,具有处理HTML页面的功能不过Tomcat处理静态HTML的能力不如Nginx/Apache服务器。

  一个tomcat默认并发是200(官方),可以修改,但实际用的时候也就200并发左右。

使用方案:

建议使用Nginx和Tomcat配合,Nginx处理静态,Tomcat处理动态程序 方案三中后端Tomcat可以运行在单独的主机,也可以是同一台主机上的多实例

Tomcat官网:

Tomcat好帮手---JDK

 JDK是 Java 语言的软件开发工具包,JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

JDK下载面页:

Java Downloads | Oracle

 安装时候选择tomcat软件版本要与程序开发使用的版本一致。jdk版本要进行与tomcat保持一致。

二、系统环境说明

1、关闭防火墙,selinux

systemctl stop firewalld && setenforce 0

 2、安装JDK

上传jdk1.8到服务器。安装jdk

tar xzf jdk-8u191-linux-x64.tar.gz -C /usr/local/
mv /usr/local/jdk1.8.0_191  /usr/local/jdk
echo "export PATH=/usr/local/jdk/bin:$PATH" >> /etc/profile
source /etc/profile

3、安装Tomcat

创建一个目录用于存放tomcat

mkdir /data/application -pcdwget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.49/bin/apache-tomcat-8.5.49.tar.gz

wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.49/bin/apache-tomcat-8.5.49.tar.gz --no-check-certificatetar xzf apache-tomcat-8.5.49.tar.gz -C /data/application/cd /data/application/mv apache-tomcat-8.5.49/ tomcat

设置环境变量

echo "export PATH=/data/application/tomcat/bin:$PATH" >> /etc/profilesource /etc/profile

三、Tomcat目录介绍

1、tomcat主目录介绍

2、webapps目录介绍

3、Tomcat配置介绍(conf)

4、Tomcat的管理

 

我们已经设置了环境变量所以直接 : startup.sh 启动  shutdown.sh 关闭

但是如果布置多个实例,就要去对应的tomcat包里面启动和关闭 

注意:tomcat未启动的情况下使用shutdown脚本,会有大量的输出信息。  

端口:

8005:这个端口负责监听关闭Tomcat的请求 shutdown:向以上端口发送的关闭服务器的命令字符串。

8009: 与其他http服务通信接口。(也可以没有)

8080: 建立http也就是客户端访问连接用。可以修改

 查看日志:

tail -f /data/application/tomcat/logs/catalina.out

扩展:解决Tomcat启动慢的方法

Tomcat启动慢主要原因是生成随机数的时候卡住了,导致tomcat启动不了。
yum install rng-tools # 安装rngd服务(熵服务,增大熵池)
systemctl start rngd  # 启动服务

四、Tomcat 配置管理页面(了解)

vim /usr/local/tomcat/conf/tomcat-users.xml 

 添加:(</tomcat-users> #一定要包含在这个标签"里面")

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="user" password="password" roles="tomcat,manager-gui,manager-script,admin-gui,admin-script"/>
vim /usr/local/tomcat/webapps/host-manager/META-INF/context.xml vim /usr/local/tomcat/webapps/manager/META-INF/context.xml 

修改为如图所示:

server.xml配置文件

主配置文件 server.xml
<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN"><!--port: 指定用于接受关闭命令的端口号shutdown: 指定关闭命令,可自定义,与启动脚本中的命令相对应--><Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /><!--Listener: 用于配置全局监听器,此处为使用APR库进行性能优化的监听器className: 监听器类的完全限定名SSLEngine: 指定是否启用SSL引擎--><Listener className="org.apache.catalina.core.JasperListener" /><!--Listener: JSP引擎的监听器,用于编译和加载JSP页面className: 监听器类的完全限定名--><GlobalNamingResources><!--全局命名资源的配置部分,这里包含了一个可编辑的用户数据库的资源配置--><Resource name="UserDatabase" auth="Container"type="org.apache.catalina.UserDatabase"description="User database that can be updated and saved"factory="org.apache.catalina.users.MemoryUserDatabaseFactory"pathname="conf/tomcat-users.xml" /><!--Resource: 定义了一个资源name: 资源的名称,这里为"UserDatabase"auth: 认证方式,Container表示使用容器的身份验证type: 资源的类型,这里为"org.apache.catalina.UserDatabase"description: 资源的描述信息factory: 创建资源的工厂类的完全限定名pathname: 用户数据库文件的路径,这里为"conf/tomcat-users.xml"--></GlobalNamingResources><Service name="Catalina"><!--Service: Tomcat服务的配置name: 服务名称--><Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" /><!--Connector: 配置用于接受HTTP请求的连接器port: 监听的端口号protocol: 使用的协议connectionTimeout: 连接超时时间redirectPort: 重定向端口,用于HTTPS连接--><!-- 其他连接器的配置 --><Engine name="Catalina" defaultHost="localhost"><!--Engine: Web容器引擎的配置name: 引擎名称defaultHost: 默认的主机名--><Realm className="org.apache.catalina.realm.LockOutRealm"><!--Realm: 安全领域的配置className: 安全领域实现类的完全限定名--><Realm className="org.apache.catalina.realm.UserDatabaseRealm"resourceName="UserDatabase"/><!--嵌套的Realm配置,这里使用UserDatabaseRealm作为默认的安全领域resourceName: 资源名称,对应于conf/tomcat-users.xml文件中的UserDatabase--></Realm><Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true"><!--Host: 虚拟主机的配置name: 主机名appBase: Web应用程序的基础路径unpackWARs: 是否自动解压部署的WAR文件autoDeploy: 是否自动部署Web应用程序--><!-- 其他虚拟主机的配置 --><Valve className="org.apache.catalina.valves.AccessLogValve"directory="logs" prefix="localhost_access_log." suffix=".txt"pattern="%h %l %u %t &quot;%r&quot; %s %b" /><!--Valve: 用于记录访问日志className: 完全限定名directory: 日志存储的目录prefix: 日志文件名的前缀suffix: 日志文件名的后缀pattern: 日志格式--></Host><!-- 其他虚拟主机的配置 --></Engine></Service>
</Server>

Connector主要参数说明

port:指定服务器端要创建的端口号,并在这个端口监听来自客户端的请求。
protocol:连接器使用的协议,支持HTTP和AJP。AJP(Apache Jserv Protocol)专用于tomcat与apache建立通信的.
redirectPort:指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号
maxThreads:接收最大请求的并发数
connectionTimeout  指定超时的时间数(以毫秒为单位)

 host参数详解

host:表示一个虚拟主机
name:指定主机名
appBase:应用程序基本目录,即存放应用程序的目录.一般为appBase="webapps",相对于CATALINA_HOME而言的,也可以写绝对路径。
unpackWARs:如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR文件中运行应用程序
autoDeploy:在tomcat启动时,是否自动部署 

五、WEB站点部署

上线的代码有两种方式:

第一种方式是直接将程序目录放在webapps目录下面,这种方式大家已经明白了,就不多说了。(放在webapps目录下的ROOT目录里面,浏览器访问ip:8080后面不需要指定目录,否则访问需要指定,例如:ip:8080/jenkins)

第二种方式是使用开发工具将程序打包成war包,然后上传到webapps目录下面。(这种会自动解压缩)

1、使用war包部署web站点

wget http://updates.jenkins-ci.org/download/war/2.129/jenkins.war
cd /data/application/tomcat   #进入tomcat目录
cp -r webapps/ /opt/    #将原来的发布网站目录备份
cd webapps/
rm -rf *    #清空发布网站里面的内容
cp /root/jenkins.war .   #将war包拷贝到当前目录

关闭服务,手动解压 unzip jenkins.war  完了在启动服务

#这里配置上传大于50M的文件 

/usr/local/tomcat/webapps/manager/WEB-INF/web.xml<!-- 50 MiB max -->

2、自定义默认网站目录

 修改默认发布目录:

mkdir /data/application/webapp  #创建发布目录
vim /data/application/tomcat/conf/server.xml

将原来的:

改为: 

然后重启服务(先关闭,再启动),把war包拷贝到新的发布目录,它会自动解压缩 

六、Tomcat多实例配置

多实例(多进程):同一个程序启动多次,分为两种情况:

第一种:一台机器跑多个站点;

第二种:一个机器跑一个站点多个实例,配合负载均衡

 1、复制程序文件

cd /data/application/
cp -r tomcat/ tomcat_2#修改端口,以启动多实例。多实例之间端口不能一致sed -i 's#8005#8012#;s#8080#8082#' tomcat_2/conf/server.xmlecho 8081 >> tomcat/webapps/ROOT/index.jsp 
echo 8082 >> tomcat_2/webapps/ROOT/index.jsp

2、启动tomcat多实例

去各自tomcat里面启动

3、负载均衡配置

 下载一个nginx

upstream testweb {server 192.168.50.114:8081 weight=1 max_fails=1 fail_timeout=2s;server 192.168.50.114:8082 weight=1 max_fails=1 fail_timeout=2s;
}server {listen       80;server_name  localhost;access_log  /var/log/nginx/proxy.access.log  main;location / {proxy_pass http://testweb;proxy_set_header Host $host:$server_port;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}       error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;} 
}

配置完检查语法,然后开启,直接浏览器访问ip,无需指定端口 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/648373.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

类和对象 第三部分第三小节:const修饰成员函数

一.常函数&#xff1a; &#xff08;一&#xff09;成员函数后面加const后我们成这个函数为常函数 &#xff08;二&#xff09;常函数内不可以修改成员函数属性 额外补充&#xff1a; this指针的本质&#xff0c;是指针常量&#xff0c;指针指向的是不可以修改的 但是指针指向的…

点击查看灯塔工厂

“灯塔工厂”项目由达沃斯世界经济论坛与管理咨询公司麦肯锡合作开展遴选&#xff0c;被誉为“世界上最先进的工厂”&#xff0c;是工业4.0技术应用的最佳实践工厂&#xff0c;代表着全球智能制造的最高水平。目前全球“灯塔工厂”共有 153 座&#xff0c;包含中国 62 座。 做…

响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例4-11 HTML5 表单验证

代码 <!doctype html> <html> <head> <meta charset"utf-8"> <title>HTML5 表单验证</title> </head><body> <form action"#" method"get" novalidate>请输入您的邮箱:<input type&q…

无限学模式-“科研创新的加速器:全面掌握ChatGPT,推动研究方法和工作模式现代化!“

2023年随着OpenAI开发者大会的召开&#xff0c;最重磅更新当属GPTs&#xff0c;多模态API&#xff0c;未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义&#xff0c;不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车…

小型商用机器人,如何做到小而强?

兼顾体型和性能。 体型和性能的矛盾 一直以来&#xff0c;商用清洁机器人的应用场景主要集中在大型商场、超市、写字楼等&#xff0c;为什么1000平米以下的小型商超等中小场景却很少涉足&#xff1f;原因可以说有很多&#xff0c;但核心为两方面&#xff0c;一方面&#xff0…

工厂模式-策略工厂模式 两者的区别

模拟支付分为 微信支付 &#xff0c;支付宝支付&#xff0c;银联支付 1、工厂模式 &#xff08;1&#xff09;、支付枚举类 import lombok.Getter;/*** author zwh* date 2024/1/26*/ Getter public enum PayEnum {/*** 支付类型*/WX_PAY(1, "微信支付"),ALI_PAY(…

YOLOv8优化策略:注意力涨点系列篇 | 一种轻量级的加强通道信息和空间信息提取能力的MLCA注意力

🚀🚀🚀本文改进:一种轻量级的加强通道信息和空间信息提取能力 MLCA注意力 🚀🚀🚀在YOLOv8中如何使用 1)作为注意力机制使用;2)与c2f结合使用; 🚀🚀🚀YOLOv8改进专栏:http://t.csdnimg.cn/hGhVK 学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研…

PaddleOCR将自己训练的模型转换为openvino格式模型

1 训练模型 python train_steelseal_det.py2 checkpoints模型转换为inference 模型 加载配置文件ch_PP-OCRv4_det_student_steelseal.yml&#xff0c;从./output/ch_PP-OCRv4/best_model/目录下加载model模型&#xff0c;inference模型保存在./output/ch_PP-OCRv4/best_model…

机器学习 | 深入探索Numpy的高性能计算能力

目录 初识numpy numpy基本操作 数组的基本操作 ndarray运算 数组间运算 矩阵 初识numpy Numpy&#xff08;Numerical Python&#xff09;是一个开源的Python科学计算库&#xff0c;用于快速处理任意维度的数组。Numpy支持常见的数组和矩阵操作。对于同样的数值计算任务&…

视频尺寸魔方:分层遮掩3D扩散模型在视频尺寸延展的应用

▐ 摘要 视频延展(Video Outpainting)是对视频的边界进行扩展的任务。与图像延展不同&#xff0c;视频延展需要考虑到填充区域的时序一致性&#xff0c;这使得问题更具挑战性。在本文中&#xff0c;我们介绍了一个新颖的基于扩散模型的视频尺寸延展方法——分层遮掩3D扩散模型(…

盛况空前 火热来袭 ▏2024上海国际轴承及其专用装备展览会暑期归来

中国设备管理协会主办的“2024上海国际轴承及其专用装备展览会”将于2024年7月24日至26日在“国家会展中心&#xff08;虹桥&#xff09;”举办。展会预计展出面积55000平方米&#xff0c;汇聚来自世界各地的近1000家企业与60000多人次的国内外观众齐聚一堂。为期三天的展览会是…

【力扣每日一题】力扣2846边权重均等查询

题目来源 力扣2846边权重均等查询 解题过程 思路一 刚开始看到这道题&#xff0c;注意到了是一个在树中找路径的问题&#xff0c;于是选择了把树当作图&#xff0c;来寻找两点之间的路径。&#xff08;这里使用了DFS来找路径&#xff09; 代码实现一 class Solution {pri…

五、RHCE--NFS服务器

五、RHCE--NFS服务器 1、简介2、nfs配置3、配置autofs自动挂载1、简介 NFS(Network File System,网络文件系统)是FreeBSD支持的文件系统中的一种,它允许网络中的计算机(不同的计算机、不同的操作系统)之间通过TCP/IP网络共享资源,主要在unix系列操作系统上使用。在NFS的…

VisualSVN Server下载安装和使用方法、服务器搭建、使用TortoiseSvn将项目上传到云端服务器、各种错误解决方法

VisualSVN Server下载安装和使用方法、服务器搭建、使用TortoiseSvn将项目上传到云端服务器、各种错误解决方法 0.写在前面00.电脑配置01.思路 1.VisualSVN Server下载安装01.下载02.安装03.电脑命名不能有中文04.制作VisualSVN Server快捷方式05.License limits exceeded, Som…

二分图 染色法 + 匈牙利算法

染色法判断二分图 const int N 1e5 10, M 2 * N;int e[M], ne[M], h[N], n, m, idx 0, color[N]; void add(int a, int b){e[idx] b; ne[idx] h[a]; h[a] idx;}bool dfs(int u, int c) {color[u] c; // 染色该点for(int i h[u]; i ! -1; i ne[i]){int j …

仅用2天就备案完成了,这速度也太快了...

引言 大家好&#xff0c;就在前天&#xff0c;笔者才发布了文章《时隔78天&#xff0c;个人微信小游戏内容审核终于通过了&#xff0c;这到底是经历了什么…》。 感慨了游戏内容审核的不容易&#xff0c;同时简单介绍了备案的流程。 没想到申请备案才2天&#xff0c;就已经过…

如何对高并发系统进行压力测试?重要参数详解

前言 大家好&#xff0c;我是chowley&#xff0c;今天来介绍一下——高并发系统下的压力测试 本文将深入探讨如何对高并发系统进行压力测试&#xff0c;重点解析压力测试中的关键参数。 压力测试 在当今的软件开发领域中&#xff0c;高并发系统的性能至关重要的。为确保系统…

TongWeb8交流常见问答集

问题1&#xff1a;今后用到你们TongWeb产品该联系谁&#xff1f; 答复&#xff1a; 1. 商务问题&#xff0c;如&#xff1a;报价、license授权、合同等请联系销售。 2. TongWeb技术问题&#xff0c;未签项目联系售前&#xff0c;已签项目联系售后。有指定项目经理的项目&…

【EI会议征稿】第三届大数据、区块链与经济管理国际学术会议 (ICBBEM 2024)

第三届大数据、区块链与经济管理国际学术会议 (ICBBEM 2024) The 3rd International Conference on Bigdata Blockchain and Economy Management 第三届大数据、区块链与经济管理国际学术会议(ICBBEM 2024)&#xff0c;将于2024年3月22-24日在中国南昌召开。大会由江西科技师…

2023年衣物清洁赛道行业数据分析(电商数据查询):总销额同比下滑21%

衣物清洁产品是日常生活中的必备消费品&#xff0c;加之消费频次较高&#xff0c;因此在我国较大的人口基数背景下&#xff0c;衣物清洁市场的整体体量也比较大。不过&#xff0c;从年度的销售走势看&#xff0c;2023年衣物清洁市场的整体销售呈现一定幅度的下滑。 根据鲸参谋…