Tomcat部署

一 简述

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。Tomcat 是由 Apache 开发的一个 Servlet 容器,实现了对 Servlet 和 JSP 的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。

Tomcat和nginx、Apache、(httpd)等web服务器一样,具有处理html页面的功能,另外他还是一个servlet和jsp容器,独立的servlet容器是tomcat的默认模式。不过tomcat处理静态html的能力不如nginx/Apache服务器

Tomcat安装是基于JDK安装的,JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

二 部署

2.1 下载地址

tomcat:

https://tomcat.apache.org/

jdk:

https://www.oracle.com/cn/java/technologies/downloads/

2.2 将包上传至服务器中

[root@web01 weihu]# ll -tr
总用量 198M
-rw-r--r-- 1 root root 186M  5月  6  2020 jdk-8u211-linux-x64.tar.gz
-rw-r--r-- 1 root root  12M  5月  9 19:37 apache-tomcat-9.0.75.tar.gz

2.3 安装jdk和tomcat

jdk我已经提前装好了,这里就不演示安装过程了

[root@web01 weihu]# java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

解压tomcat安装包到指定目录

[root@web01 weihu]# tar -xf apache-tomcat-9.0.75.tar.gz -C /usr/local/
[root@web01 weihu]# mv /usr/local/apache-tomcat-9.0.75/ /usr/local/tomcat-9.0.75
[root@web01 weihu]# cd /usr/local/
[root@web01 local]# cd tomcat-9.0.75/
[root@web01 tomcat-9.0.75]# ll -tr
总用量 148K
drwxr-x--- 2 root root 4.0K  5月  4  2023 work
drwxr-x--- 7 root root 4.0K  5月  4  2023 webapps
-rw-r----- 1 root root  17K  5月  4  2023 RUNNING.txt
-rw-r----- 1 root root 6.8K  5月  4  2023 RELEASE-NOTES
-rw-r----- 1 root root 3.4K  5月  4  2023 README.md
-rw-r----- 1 root root 2.3K  5月  4  2023 NOTICE
drwxr-x--- 2 root root 4.0K  5月  4  2023 logs
-rw-r----- 1 root root  56K  5月  4  2023 LICENSE
-rw-r----- 1 root root 6.1K  5月  4  2023 CONTRIBUTING.md
drwx------ 2 root root 4.0K  5月  4  2023 conf
-rw-r----- 1 root root  20K  5月  4  2023 BUILDING.txt
drwxr-x--- 2 root root 4.0K  5月 18 21:44 lib
drwxr-x--- 2 root root 4.0K  5月 18 21:44 temp
drwxr-x--- 2 root root 4.0K  5月 18 21:44 bin

2.4 启动tomcat

#可以进入bin目录查看
[root@web01 bin]# ll -tr
总用量 900K
-rwxr-x--- 1 root root 1.9K  5月  4  2023 version.sh
-rw-r----- 1 root root 2.0K  5月  4  2023 version.bat
-rwxr-x--- 1 root root 5.5K  5月  4  2023 tool-wrapper.sh
-rw-r----- 1 root root 4.5K  5月  4  2023 tool-wrapper.bat
-rw-r----- 1 root root 428K  5月  4  2023 tomcat-native.tar.gz
-rw-r----- 1 root root  48K  5月  4  2023 tomcat-juli.jar
-rwxr-x--- 1 root root 1.9K  5月  4  2023 startup.sh
-rw-r----- 1 root root 2.0K  5月  4  2023 startup.bat
-rwxr-x--- 1 root root 1.9K  5月  4  2023 shutdown.sh
-rw-r----- 1 root root 2.0K  5月  4  2023 shutdown.bat
-rwxr-x--- 1 root root 4.3K  5月  4  2023 setclasspath.sh
-rw-r----- 1 root root 3.8K  5月  4  2023 setclasspath.bat
-rwxr-x--- 1 root root 3.4K  5月  4  2023 makebase.sh
-rw-r----- 1 root root 3.6K  5月  4  2023 makebase.bat
-rwxr-x--- 1 root root 2.0K  5月  4  2023 digest.sh
-rw-r----- 1 root root 2.1K  5月  4  2023 digest.bat
-rwxr-x--- 1 root root 8.9K  5月  4  2023 daemon.sh
-rwxr-x--- 1 root root 1.9K  5月  4  2023 configtest.sh
-rw-r----- 1 root root 2.0K  5月  4  2023 configtest.bat
-rw-r----- 1 root root 210K  5月  4  2023 commons-daemon-native.tar.gz
-rw-r----- 1 root root  26K  5月  4  2023 commons-daemon.jar
-rwxr-x--- 1 root root 2.0K  5月  4  2023 ciphers.sh
-rw-r----- 1 root root 2.1K  5月  4  2023 ciphers.bat
-rw-r----- 1 root root 1.7K  5月  4  2023 catalina-tasks.xml
-rwxr-x--- 1 root root  25K  5月  4  2023 catalina.sh
-rw-r----- 1 root root  17K  5月  4  2023 catalina.bat
-rw-r----- 1 root root  35K  5月  4  2023 bootstrap.jar
[root@web01 bin]# 

# 有两种方式启动和停止,用哪一种都可以
#第一种:
[root@web01 bin]# /usr/local/tomcat-9.0.75/bin/startup.sh        //启动
[root@web01 bin]# /usr/local/tomcat-9.0.75/bin/shutdown.sh       //停止

#第二种:
[root@web01 bin]# /usr/local/tomcat-9.0.75/bin/catalina.sh start   //启动
[root@web01 bin]# /usr/local/tomcat-9.0.75/bin/catalina.sh stop    //停止


#启动后查看端口
[root@web01 bin]# 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                1                           [::ffff:127.0.0.1]:8005                                  *:*                                
LISTEN           0                100                                          *:8080                                  *:*                                
LISTEN           0                128                                       [::]:22                                 [::]:*                                
[root@web01 bin]# 

端口解释:

8005是tomcat本身的端口
8080端口是负责建立http连接,通过浏览器访问tomcat服务器的web应用时,使用的就是这个连接器,也就是访问的是8080端口。
还有一个端口是8009端口,不过这个端口在新版本后没有了,这个端口是负责和其他的http服务器建立连接把tomcat与其他http服务器集成时,就需要用到这个端口。

2.5 访问测试

http://IP:8080

三 目录结构及配置文件详解

tomcat目录结构

[root@web01 ~]# cd /usr/local/tomcat-9.0.75/
[root@web01 tomcat-9.0.75]# tree -L 1
.
├── bin            # 服务启动、停止等相关程序和文件
├── BUILDING.txt
├── conf              #配置文件
├── CONTRIBUTING.md
├── lib                #库目录
├── LICENSE
├── logs               #日志目录
├── NOTICE
├── README.md
├── RELEASE-NOTES
├── RUNNING.txt
├── temp
├── webapps            #应用程序,应用部署的目录
└── work               #jsp编译后的结果文件

7 directories, 7 files
[root@web01 tomcat-9.0.75]# 

配置文件详解

[root@web01 conf]# tree -L 1
.
├── Catalina
├── catalina.policy
├── catalina.properties
├── context.xml
├── jaspic-providers.xml
├── jaspic-providers.xsd
├── logging.properties
├── server.xml
├── tomcat-users.xml
├── tomcat-users.xsd
└── web.xml

1 directory, 10 files
[root@web01 conf]# 

解释:

server.xml 主配置文件
web.xml 每个webapp只有“部署”后才能被访问,它的部署方式通常由web.xml进行定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认部署相关的配置,每个web应用也可以使用专用配置文件,来覆盖全局文件
context.xml 用于定义所有web应用均需加载的Context配置,此文件为所有的webapps提供默认配置,每个web应用也可以使用自已专用的配置,它通
常由专用的配置文件context.xml来定义,其存放位置为WEB-INF/目录中,覆盖全局的文件
tomcat-users.xml 用户认证的账号和密码文件
catalina.policy 当使用security选项启动tomcat时,用于为tomcat设置安全策略
catalina.properties Tomcat 环境变量的配置,用于设定类加载器路径,以及一些与JVM调优相关参数
logging.properties Tomcat 日志系统相关的配置,可以修改日志级别和日志路径等

日志结构详解

[root@web01 conf]# ls -1 /usr/local/tomcat-9.0.75/logs/
catalina.2024-05-18.log             #服务日志
catalina.2024-05-19.log             #服务日志
catalina.out                        #服务日志
host-manager.2024-05-18.log         #host manager管理日志
host-manager.2024-05-19.log         
localhost.2024-05-18.log            #默认主机日志
localhost.2024-05-19.log            
localhost_access_log.2024-05-18.txt       #默认主机访问日志
localhost_access_log.2024-05-19.txt 
manager.2024-05-18.log                   #manager管理日志
manager.2024-05-19.log                   

日志格式配置说明(默认配置)

[root@web01 conf]# vim /usr/local/tomcat-9.0.75/conf/server.xml 
······
        <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" />
······
日志参数解释:
    %a - 远程IP地址
    %A - 本地IP地址
    %b - 发送的字节数,不包括HTTP头,或“ - ”如果没有发送字节
    %B - 发送的字节数,不包括HTTP头
    %h - 远程主机名
    %H - 请求协议
    %l (小写的L)- 远程逻辑从identd的用户名(总是返回' - ')
    %m - 请求方法
    %p - 本地端口
    %q - 查询字符串(在前面加上一个“?”如果它存在,否则是一个空字符串
    %r - 第一行的要求
    %s - 响应的HTTP状态代码
    %S - 用户会话ID
    %t - 日期和时间,在通用日志格式
    %u - 远程用户身份验证
    %U - 请求的URL路径
    %v - 本地服务器名
    %D - 处理请求的时间(以毫秒为单位)
    %T - 处理请求的时间(以秒为单位)
    %I (大写的i) - 当前请求的线程名称
    &quot;在html中表示双引号"符号

示例:tomcat日志实现json格式的访问日志

默认格式为:

[root@web01 conf]# tail -10f /usr/local/tomcat-9.0.75/logs/localhost_access_log.2024-05-19.txt 
11.0.1.1 - - [19/May/2024:09:37:59 +0800] "GET /tomcat.css HTTP/1.1" 200 5542
11.0.1.1 - - [19/May/2024:09:37:59 +0800] "GET /bg-nav.png HTTP/1.1" 200 1401
11.0.1.1 - - [19/May/2024:09:37:59 +0800] "GET /asf-logo-wide.svg HTTP/1.1" 200 27235
11.0.1.1 - - [19/May/2024:09:37:59 +0800] "GET /bg-upper.png HTTP/1.1" 200 3103
11.0.1.1 - - [19/May/2024:09:37:59 +0800] "GET /bg-button.png HTTP/1.1" 200 713
11.0.1.1 - - [19/May/2024:09:37:59 +0800] "GET /bg-middle.png HTTP/1.1" 200 1918
11.0.1.1 - - [19/May/2024:09:38:00 +0800] "GET /favicon.ico HTTP/1.1" 200 21630
11.0.1.1 - - [19/May/2024:09:42:12 +0800] "GET /manager/status HTTP/1.1" 403 3446
11.0.1.1 - - [19/May/2024:12:35:41 +0800] "GET /manager/status HTTP/1.1" 403 3446
11.0.1.1 - - [19/May/2024:12:35:50 +0800] "GET / HTTP/1.1" 200 11230

修改配置文件

[root@web01 logs]# vim /usr/local/tomcat-9.0.75/conf/server.xml
// 修改为下面内容,注意这是一整行内容
pattern="{&quot;clientip&quot;:&quot;%h&quot;,&quot;ClientUser&quot;:&quot;%l&quot;,&quot;authenticated&quot;:&quot;%u&quot;,&quot;AccessTime&quot;:&quot;%t&quot;,&quot;method&quot;:&quot;%r&quot;,&quot;status&quot;:&quot;%s&quot;,&quot;SendBytes&quot;:&quot;%b&quot;,&quot;Query?string&quot;:&quot;%q&quot;,&quot;partner&quot;:&quot;%{Referer}i&quot;,&quot;AgentVersion&quot;:&quot;%{User-Agent}i&quot;}"/>

修改完成重启tomcat服务

再次查看日志已经显示为json格式的日志

[root@web01 logs]# tail -10f /usr/local/tomcat-9.0.75/logs/localhost_access_log.2024-05-19.txt
{"clientip":"11.0.1.1","ClientUser":"-","authenticated":"-","AccessTime":"[19/May/2024:12:52:34 +0800]","method":"GET / HTTP/1.1","status":"200","SendBytes":"11230","Query?string":"","partner":"-","AgentVersion":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0"}
{"clientip":"11.0.1.1","ClientUser":"-","authenticated":"-","AccessTime":"[19/May/2024:12:52:35 +0800]","method":"GET / HTTP/1.1","status":"200","SendBytes":"11230","Query?string":"","partner":"-","AgentVersion":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0"}
{"clientip":"11.0.1.1","ClientUser":"-","authenticated":"-","AccessTime":"[19/May/2024:12:52:59 +0800]","method":"GET / HTTP/1.1","status":"200","SendBytes":"11230","Query?string":"","partner":"-","AgentVersion":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0"}

  • 19
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值