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

一.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等相关配置

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CSS:实现择色器透明度条的两种方法(附赠一个在线图片转base64网站)

一、效果展示 二、实现方式 1.锥形渐变 .main{width: 600px;height: 20px;background: repeating-conic-gradient(rgba(1, 1, 1, 0.1) 0 25%,transparent 0 50%);background-size: 20px 20px;} 2.背景图 将一个四方格图片转为base64然后直接在css中使用 .main1 {width: 600p…

RabbitMQ 模拟实现【四】:虚拟主机设计

文章目录 虚拟主机设计虚拟主机分析交换机和虚拟主机之间的从属关系核心 API发布消息订阅消息应答消息消费者管理类 虚拟主机设计 虚拟主机分析 类似于 MySQL 的 database,把交换机,队列,绑定,消息…进⾏逻辑上的隔离&#xff0…

医学数据分析中缺失值的处理方法

医学数据分析中缺失值的处理方法 (为了更好的展示,在和鲸社区使用代码进行展示) 医学数据分析中,缺失值是不可避免的问题。缺失值的存在会影响数据的完整性和准确性,进而影响分析结果的可靠性。因此,在进…

php+vue+mysql公司员工薪酬工资管理系统

采用面向对象的思维方式,以符合实际的功能与性能要求,并进行了创新。为了提升小型企业工资管理的自动化和友善性的小型企业工资管理系统。 本文提出了一种基于面向对象的思想方法,以适应系统的实际功能与性能要求。为了使小型企业工资管理更具…

柚见第十期(后端队伍接口详细设计)

创建队伍 用户可以 创建 一个队伍,设置队伍的人数、队伍名称(标题)、描述、超时时间 P0 队长、剩余的人数 聊天? 公开 或 private 或加密 信息流中不展示已过期的队伍 请求参数是否为空?是否登录,未登录不…

决策树 | 分类树回归树:算法逻辑

目录 一. 决策树(Decision Tree)1. 决策树的构建1.1 信息熵(Entropy)1.1.1 信息量&信息熵 定义1.1.2 高信息熵&低信息熵 定义1.1.3 信息熵 公式 1.2 信息增益(Information Gain)1.2.1 信息增益的计算1.2.2 小节 2. 小节2.1 算法分类2.2 决策树算法分割选择2.3 决策树算…

Python应用数值方法:工程与科学实践指南

信息技术时代的挑战与机遇 我们正处在一个信息技术高速发展的时代,这是一个科技与创新蓬勃发展的时代。大数据与人工智能的崛起,正以前所未有的速度推动着传统技术的智能化变革。这种变革不仅带来了前所未有的机遇,也对科学和工程技术人员的…

什么时候要分库分表

对于一个日活用户在百万数量级的商城来说,每天产生的订单数量可能在百万级,特别在一些活动促销期间,甚至上千万。 假设我们基于单表来实现,每天产生上百万的数据量,不到一个月的时间就要承受上亿的数据,这…

水库大坝安全监测中需要注意的事项

随着经济和社会的发展,水资源的需求也在不断增加。因此,建设水库已成为保障水资源的主要方式之一。然而,随着水库规模的增大和工程的复杂性的增加,水库大坝的安全问题也日益引起重视。为此,需要对水库大坝进行安全监测…

2024年云服务器ECS价格表出炉——阿里云

2024年阿里云服务器租用费用,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元,ECS u1服务器2核4G5M固定带宽199元一年,2核4G4M带宽轻量服务器一年165元12个月,2核4G服务…

变量的本质和命名规则

变量的本质 内存:计算机中存储数据的地方,相当于一个空间变量本质:是程序在内存中申请的一块用来存放数据的小空间 变量命名规则与规范 规则: 不能用关键字 关键字:有特殊含义的字符,JavaScript 内置的一些英语词汇。例如:let、var、if、for等>只…

2024阿里技术官重磅推出“Java进阶必备宝典” 5大专题 6000字解析

5.JVM实战 CPU占用过高案例实战 内存占用过高案例实战 15种方式编写高效优雅Java程序实战 6.JVM底层技术 亿级流量高井发下GC预估与调优 JHSDB工具透视L ambda底层实现 JVM(HotSpot)核心源码解读 JVM核心模块(GC算法)手写实战 核心三:网络编程与高效IO 1.网络…

人形双臂机器人重大进展!顶刊公布业界首个双臂通用协同操作架构

图1:人居环境下的人形双臂机器人系统 通用人形机器人作为近年来机器人与AI交叉领域的研究热点和技术竞争高地,因其具备在非结构化人居环境中承担各种琐碎家务的潜力而得到广泛关注。人形双臂系统直接承载着人形机器人操作任务的执行能力,通用…

使用ai智能工具,让短视频超强变现。利用人工智能创作短视频

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 以下文章简单介绍如何利用人工智能来制作短视频,来实现资源变现。 一、…

ARM TrustZone技术解析:构建嵌入式系统的安全扩展基石

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-LOdvohfCEnd8eKyd {font-family:"trebuchet ms",verdana,arial,sans-serif;f…

阿里云服务器租用费用价格表(2024年新版报价)

2024阿里云服务器优惠活动政策整理,阿里云99计划ECS云服务器2核2G3M带宽99元一年、2核4G5M优惠价格199元一年,轻量应用服务器2核2G3M服务器61元一年、2核4G4M带宽165元1年,云服务器4核16G10M带宽26元1个月、149元半年,云服务器8核…

C#制作软件时窗体的弹出与嵌入

文章目录 一、窗体的弹出二、窗体的嵌入 一、窗体的弹出 这里面我们以Windows窗体应用程序为例,这里面达到的效果如下: 点击指定按钮,弹出目标窗口。接下来我们看具体操作: 这是我们的主窗体: 接下来我们需要在这个…

表结构设计

三个范式: 一范式要求所有属性都是不可分的基本数据项;二范式解决部分依赖;三范式解决传递依赖。 真实的业务场景是工程实现,表结构设计做好以下几点就已经足够: 每张表一定要有一个主键(方法有自增主键…

285K Star,一个让开发变得更简单的 GitHub 项目

Hi,骚年,我是大 G,公众号「GitHub 指北」会推荐 GitHub 上有趣有用的项目,一分钟 get 一个优秀的开源项目,挖掘开源的价值,欢迎关注。 导语 公共 API(Application Programming Interface&…

【框架学习 | 第六篇】SpringBoot基础篇(快速入门、自动配置原理分析、配置文件、整合第三方技术、拦截器、文件上传/下载、访问静态资源)

文章目录 1.SpringBoot简介1.1原有Spring优缺点分析1.1.1Spring优点1.1.2Spring缺点 1.2SpringBoot概述1.2.1SpringBoot解决上述Spring的缺点1.2.2SpringBoot特点1.2.3SpringBoot核心功能 2.SpringBoot快速入门2.1代码实现2.1.1创建Maven工程2.1.2添加SpringBoot的起步依赖2.1.…