Linux系统架构----Tomcat 部署

news2024/9/24 9:18:51

一.Tomcat概述

Tomcat服务器是一个免费的开放式源代码的web应用服务器,属于轻量级应用级服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首首选。
一般来说,tomcat虽然和Apache或者Nginx这些Web服务器一样,具有处理HTML页面的功能,但是由于其处理静态HTML的能力远不及Apache或者Nginx,因此Tomcat通常作为一个Servlet和JSP容器。

注:Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。

二.Tomcat的部署

  • 部署环境
主机操作系统IP地址主要软件
Tomcat服务器centos810.1.1.171jdk-8u333-linux-x64.tar.gz、apache-tomcat-9.0.64.tar.gz
注:在安装Tomcat之前必须安装JDK,JDK是Sun公司提供的Java语言的软件开发工具包,其中包含Java虚拟机(JVM)。编写好的Java源程序经过编译可以形成Java的字节码,只要安装了JDK,就可以利用JVM解释这些字节码文件,从而保证了Java的跨平性。在平台兼容性方面,JDK作为解释字节码并据此调用操作系统的API(功能接口)实现对应功能的Java虚拟机,与操作系统类型和平台位数密切相关,因此存在不同版本。
  • 安装JDK,配置Java环境
#由于下载包比较慢已经提前下载了
[root@tomcat ~]# ls
anaconda-ks.cfg  jdk-8u333-linux-x64.tar.gz
[root@tomcat ~]# tar xf jdk-8u333-linux-x64.tar.gz -C /usr/local
[root@tomcat ~]# cd /usr/local
[root@tomcat local]# ln -s jdk1.8.0_333/ jdk
#配置环境变量
[root@tomcat local]# vim /etc/profile.d/jdk.sh
[root@tomcat ~]# cat /etc/profile.d/jdk.sh 
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin
#生成环境变量
[root@tomcat local]# . /etc/profile.d/jdk.sh
#验证安装
[root@tomcat local]# java -version
java version "1.8.0_333"
Java(TM) SE Runtime Environment (build 1.8.0_333-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.333-b02, mixed mode)
[root@tomcat local]# which java
/usr/local/jdk/bin/java
#查找jdk路径
[root@tomcat ~]# find / -name jdk
/usr/local/jdk
  • 二进制安装tomcat,提前准备好安装包
[root@tomcat ~]# tar xf apache-tomcat-9.0.64.tar.gz -C /usr/local
[root@tomcat ~]# cd /usr/local/
[root@tomcat local]# ln -s apache-tomcat-9.0.64/ tomcat
#指定PATH变量
[root@tomcat ~]## echo 'PATH=/usr/local/tomcat/bin:$PATH' > /etc/profile.d/tomcat.sh
[root@tomcat ~]# . /etc/profile.d/tomcat.sh 
[root@tomcat ~]# echo $PATH 
/usr/local/tomcat/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/jdk/bin
#查看当前变量设置和命令用法
[root@tomcat ~]# catalina.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk
#查看环境变量和版本信息
[root@tomcat ~]# catalina.sh version
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk
#启动tomcat
[root@tomcat ~]# 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/local/jdk
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started
#查看端口
[root@tomcat ~]# ss -ntl
State       Recv-Q      Send-Q                 Local Address:Port             Peer Address:Port      Process      
LISTEN      0           128                          0.0.0.0:22                    0.0.0.0:*                      
LISTEN      0           100                        127.0.0.1:25                    0.0.0.0:*                      
LISTEN      0           1                 [::ffff:127.0.0.1]:8005                        *:*                      
LISTEN      0           100                                *:8080                        *:*                      
LISTEN      0           128                             [::]:22                       [::]:*                      
LISTEN      0           100                            [::1]:25                       [::]:*
#查看进程是以root启动的
[root@tomcat ~]# ps aux |grep tomcat
root       23461 27.7  4.1 4213856 118128 pts/0  Sl   14:35   0:07 /usr/local/jdk/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogMana
#关闭tomcat
[root@tomcat ~]# shutdown.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS: 
#再次用不同方式启动tomcat
[root@tomcat ~]# catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@tomcat ~]## ss -ntl
State       Recv-Q      Send-Q                 Local Address:Port             Peer Address:Port      Process      
LISTEN      0           128                          0.0.0.0:22                    0.0.0.0:*                      
LISTEN      0           100                        127.0.0.1:25                    0.0.0.0:*                      
LISTEN      0           1                 [::ffff:127.0.0.1]:8005                        *:*                      
LISTEN      0           100                                *:8080                        *:*                      
LISTEN      0           128                             [::]:22                       [::]:*                      
LISTEN      0           100                            [::1]:25                       [::]:*   
#再次用不同方式关闭
[root@tomcat ~]# catalina.sh stop
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:  

三.验证Tomcat服务器

[root@tomcat local]# ps aux |grep tomcat
root        1812 97.6  4.1 4213856 116056 pts/1  Sl   14:40   0:09 /usr/local/jdk/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/localtomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root        1845  0.0  0.0  12348  1068 pts/1    S+   14:40   0:00 grep --color=auto tomcat
[root@tomcat ~]# ss -ntl
State   Recv-Q  Send-Q        Local Address:Port   Peer Address:Port Process  
LISTEN  0       100               127.0.0.1:25          0.0.0.0:*             
LISTEN  0       128                 0.0.0.0:22          0.0.0.0:*             
LISTEN  0       100                   [::1]:25             [::]:*             
LISTEN  0       1        [::ffff:127.0.0.1]:8005              *:*             
LISTEN  0       100                       *:8080              *:*             
LISTEN  0       128                    [::]:22             [::]:* 

在这里插入图片描述

  • 配置tomcat自启动的service文件
#创建tomcat专用账户
[root@tomcat ~]# useradd -r -s /sbin/nologin tomcat
#准备service文件中相关环境
[root@tomcat ~]# vim /usr/local/tomcat/conf/tomcat.conf
JAVA_HOME=/usr/local/jdk  #注意写此环境之前确定jdk路径
[root@tomcat ~]# chown -R tomcat.tomcat /usr/local/tomcat/
#创建tomcat.service
[root@tomcat ~]# vim /lib/systemd/system/tomcat.service
[root@tomcat ~]# cat /lib/systemd/system/tomcat.service 
[Unit]
Description=Tomcat
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@tomcat ~]# systemctl daemon-reload
[root@tomcat ~]# systemctl enable --now tomcat
[root@tomcat ~]# systemctl restart tomcat.service
[root@tomcat ~]# systemctl status tomcat.service
#查看日志
[root@tomcat1 ~]# tail /var/log/messages
Jan 19 15:37:54 tomcat1 systemd[1]: Started dnf makecache.
Jan 19 17:29:53 tomcat1 systemd[1]: Starting dnf makecache..

四.Tomcat的配置相关说明

  • tomcat的主目录为 /usr/local/tomcat
[root@tomcat ~]# ll /usr/local/tomcat/
总用量 128
drwxr-x--- 2 tomcat tomcat  4096 3月  14 14:39 bin
-rw-r----- 1 tomcat tomcat 18986 6月   3 2022 BUILDING.txt
drwx------ 3 tomcat tomcat   273 3月  14 14:47 conf
-rw-r----- 1 tomcat tomcat  6210 6月   3 2022 CONTRIBUTING.md
drwxr-x--- 2 tomcat tomcat  4096 3月  14 14:39 lib
-rw-r----- 1 tomcat tomcat 57092 6月   3 2022 LICENSE
drwxr-x--- 2 tomcat tomcat   197 3月  14 14:40 logs
-rw-r----- 1 tomcat tomcat  2333 6月   3 2022 NOTICE
-rw-r----- 1 tomcat tomcat  3398 6月   3 2022 README.md
-rw-r----- 1 tomcat tomcat  6901 6月   3 2022 RELEASE-NOTES
-rw-r----- 1 tomcat tomcat 16505 6月   3 2022 RUNNING.txt
drwxr-x--- 2 tomcat tomcat    30 3月  14 14:39 temp
drwxr-x--- 7 tomcat tomcat    81 6月   3 2022 webapps
drwxr-x--- 3 tomcat tomcat    22 3月  14 14:40 work

  • 主要目录说明
/bin:存放windows或Linux平台上启动和关闭Tomcat的脚本文件
/conf:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml
/doc:存放Tomcat文档
/server:包含三个子目录:classes、lib和webapps
/server/lib:存放Tomcat服务器所需的各种JAR文件
/server/webapps:存放Tomcat自带的两个WEB应用admin应用和 manager应用
/common/lib:存放Tomcat服务器以及所有web应用都可以访问的jar文件
/shared/lib:存放所有web应用都可以访问的jar文件(但是不能被Tomcat服务器访问)
/logs:存放Tomcat执行时的日志文件
/src:存放Tomcat的源代码
/webapps:Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录
/work:存放JSP编译后产生的class文件
  • 主要配置文件
[root@tomcat ~]# cd /usr/local/tomcat/
[root@tomcat tomcat]# cd conf/
[root@tomcat conf]# ll
总用量 236
drwxr-x--- 3 tomcat tomcat     23 3月  14 14:40 Catalina
-rw------- 1 tomcat tomcat  12953 6月   3 2022 catalina.policy
-rw------- 1 tomcat tomcat   7308 6月   3 2022 catalina.properties
-rw------- 1 tomcat tomcat   1400 6月   3 2022 context.xml
-rw------- 1 tomcat tomcat   1149 6月   3 2022 jaspic-providers.xml
-rw------- 1 tomcat tomcat   2313 6月   3 2022 jaspic-providers.xsd
-rw------- 1 tomcat tomcat   4144 6月   3 2022 logging.properties
-rw------- 1 tomcat tomcat   7580 6月   3 2022 server.xml
-rw-r--r-- 1 tomcat tomcat     25 3月  14 14:47 tomcat.conf
-rw------- 1 tomcat tomcat   2756 6月   3 2022 tomcat-users.xml
-rw------- 1 tomcat tomcat   2558 6月   3 2022 tomcat-users.xsd
-rw------- 1 tomcat tomcat 172439 6月   3 2022 web.xml
catalina.policy:权限控制配置文件
catalina.properties:Tomcat的属性配置文件
context.xml:上下文配置文件
logging.properties:日志相关配置文件
server.xml:主配置文件,通过配置文件,可以修改tomcat的启动端口、网站目录、虚拟主机、开启https等功能
tomcat-user.xml/.xsd:管理用户配置文件
web.xml:Tomcat的servlet、servlet-mapping、filter、MIME等相关配置

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

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

相关文章

ThingsBoard 开源物联网平台

文章目录 1.ThingsBoard 介绍2.ThingsBoard 架构2.1.单体架构2.2.微服务架构 3.物联网网关4.边缘计算 ThingsBoard # ThingsBoardhttps://iothub.org.cn/docs/iot/ https://iothub.org.cn/docs/iot/thingsboard-ce/1.ThingsBoard 介绍 ThingsBoard 是一个开源物联网平台&…

MySQL 数据库 下载地址 国内阿里云站点

mysql安装包下载_开源镜像站-阿里云 以 MySQL 5.7 为例 mysql-MySQL-5.7安装包下载_开源镜像站-阿里云

C++ 拷贝构造函数和运算符重载

目录 一. 拷贝构造函数 1. 引入 2. 拷贝构造的概念 3. 浅拷贝 4. 深拷贝 二. C运算符重载 1. 概念 2. 注意事项 3.举例 一. 拷贝构造函数 1. 引入 我们在创建对象时,能不能创建一个与原先对象一模一样的新对象呢?为了解决这个问题&#x…

Qt/QML编程之路:基于QWidget编程及各种2D/3D/PIC绘制的示例(45)

关于使用GWidget,这里有一个示例,看了之后很多图形绘制,控件使用,及最基本的QWidget编程都比较清楚了。ui的绘制: 运行后的界面如 工程中有非常丰富的关于各种图形的绘制,比如上图中circle,还有image。有下面一段readme的说明: # EasyQPainter Various operation pra…

java数据结构与算法刷题-----LeetCode47. 全排列 II

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 暴力回溯2. 分区法回溯 此题为46题的衍生题,在46题…

QT c++ 双精度数拆分和组合 Tool

本文描述QT c的双精度数拆分和合并,即双精度浮点数拆为四个16位无符号整数以及将四个16位无符号整数组合为双精度浮点数。 开发平台:win10QT6.2.4 MSVC2019 64 bit 在本文的最好列出了代码和可执行文件打包下载链接(可直接使用)…

【数学】【计算几何】1453. 圆形靶内的最大飞镖数量

作者推荐 视频算法专题 本文涉及知识点 数学 计算几何 LeetCoce:1453. 圆形靶内的最大飞镖数量 Alice 向一面非常大的墙上掷出 n 支飞镖。给你一个数组 darts ,其中 darts[i] [xi, yi] 表示 Alice 掷出的第 i 支飞镖落在墙上的位置。 Bob 知道墙上所有 n 支飞…

“计算机行业的未来:政策导向、技术创新与发展前景“

从政府工作报告探计算机行业发展 政府工作报告作为政府工作的全面总结和未来规划,不仅反映了国家整体的发展态势,也为各行各业提供了发展的指引和参考。随着信息技术的快速发展,计算机行业已经成为推动经济社会发展的重要引擎之一。因此&…

Hack The Box-Monitored

目录 信息收集 rustscan dirsearch WEB web信息收集 snmpwalk curl POST身份验证 漏洞探索 漏洞挖掘 sqlmap 登录后台 提权 get user get root 信息收集 rustscan ┌──(root㉿ru)-[~/kali/hackthebox] └─# rustscan -b 2250 10.10.11.248 --range0-65535 --…

攻防世界-misc-arrdeepee

题目链接:攻防世界 (xctf.org.cn) 题目:我们某一个box被pwn了。在检查过程中,我们发现了一个叫mimikatz的东西,我们以前没有安装过,所以我们清除了,并且重新安装了box。但是,我们忘记备份我们的flag文件了。幸运的是,我们有一个攻击者网络流量捕获。你可以帮我们恢复出…

第12集《天台教观纲宗》

请大家打开讲义第二十一页,我们看己二、明稍利随时得入。 蕅益大师在《弥陀要解》讲一个很重要的概念,提醒所有净土宗的行者,他说:方便有多门,归元无二路。学佛它有两个概念:一个是方便,一个是归…

Android 录屏操作

Android 录屏操作 本文主要介绍android中如何通过MediaRecorder实现录屏操作的. 1: 申请权限 <uses-permission android:name"android.permission.RECORD_AUDIO" /> <uses-permission android:name"android.permission.WRITE_EXTERNAL_STORAGE"…

vue3动态组件未渲染问题

渲染问题 component动态组件写法与vue2写法一致&#xff0c;代码如下&#xff1a; <component :is"componentName"/><script setup>import { ref } from vueimport account from ./user/account.vue// 组件名称const componentName ref(account)// 点击…

密码学——MAC

消息认证码 在信息发送和接收过程中,若攻击者能够得到信息,进行篡改,就能达到欺骗,诈骗,冒名顶替的作用。为了防止冒名诈骗,一个对策就是使用消息认证码——MAC: Message Authentication Code。 消息认证码,即确定消息真实性的认证程序。发件人将想要发送的信息和从哪个…

挑战OpenAI的新模型免费上线,40%计算量性能逼近GPT-4

据介绍,Inflection-2.5 将强大的 LLM 能力与 Inflection 标志性的「同理心微调」结合在一起,兼具高情商与高智商,可联网获取事实信息,其性能可与 GPT-4、Gemini 等领先大模型相媲美。 本周四,美国 AI 创业公司 Inflection AI 正式发布新一代大语言模型 Inflection-2.5。 …

es 聚合操作(二)

书接上文&#xff0c;示例数据在上一篇&#xff0c;这里就不展示了 一、Pipeline Aggregation 支持对聚合分析的结果&#xff0c;再次进行聚合分析。 Pipeline 的分析结果会输出到原结果中&#xff0c;根据位置的不同&#xff0c;分为两类&#xff1a; Sibling - 结果和现有…

Github 2024-03-15 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-03-15统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量TypeScript项目3Python项目3非开发语言项目2PHP项目1C#项目1Rust项目1《Hello 算法》:动画图解、一键运行的数据结构与算法教程 创建周期:476…

N沟道功率MOSFET--FDA59N30 助力提高电源效率 为设备节能做出贡献

FDA59N30 UniFETTM MOSFET 是高压 MOSFET产品&#xff0c;基于平面条形和 DMOS 技术。 该 MOSFET 产品专用于降低通态电阻&#xff0c;并提供更好的开关性能和更高的雪崩能量强度。适用于开关电源转换器应用&#xff0c;如功率因数校正&#xff08;PFC&#xff09;、平板显示器…

c++简单使用

取消同步流是为了解决C有时遇到空格或回车&#xff08;不到\0&#xff09;就会停下的问题 #include<bits/stdc.h> using namespace std; int main() {//取消同步流ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int a, b;cin >> a>> b;cout << …

上海亚商投顾:沪指三连阴 创新药、资源回收概念逆势走强

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 三大指数昨日冲高回落&#xff0c;深成指、创业板指午后跌超1%&#xff0c;临近尾盘跌幅有所收窄。创新药板块…