系统环境

标题 版本 备注
系统版本 ubuntu 22.04.3 LTS (Jammy Jellyfish) -
内核版本 5.15.0-88-generic #98-Ubuntu SMP Mon Oct 2 15:18:56 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux -
Java v1.8.0_361 -
Tomcat v9.0.86 -

Tomcat 简介

Tomcat 官方地址:https://tomcat.apache.org/download-90.cgi

Tomcat 归档地址:https://archive.apache.org/dist/tomcat/

Apache Tomcat(简称Tomcat)是一个开源的Java Servlet容器,用于实现Java Servlet和JavaServer Pages(JSP)技术。它是Apache软件基金会的一个项目,旨在提供一个轻量级、灵活、可扩展的Web服务器和应用程序容器。

以下是Tomcat的一些关键特性和优势:

  1. Servlet容器:Tomcat是一个Java Servlet容器,支持运行Java Servlet和JSP等Java技术,可以处理Web应用程序的请求和响应。

  2. 开源免费:Tomcat是开源的,遵循Apache许可证,可以免费获取和使用,用户可以自由地查看、修改和分发源代码。

  3. 跨平台支持:Tomcat可以在多种操作系统上运行,包括Windows、Linux和macOS等,适用于不同的开发和部署环境。

  4. 轻量级:Tomcat是一个轻量级的Web服务器和应用程序容器,具有快速启动和低资源消耗的特点,适合于部署在资源受限的环境中。

  5. 可扩展性:Tomcat提供了丰富的插件和扩展机制,用户可以根据需要自定义扩展功能,满足不同的业务需求。

  6. 管理和监控工具:Tomcat提供了管理和监控工具,如Tomcat Manager和Tomcat Web管理界面,方便管理员对Tomcat服务器进行管理和监控。

  7. 安全性:Tomcat实现了一些安全功能,如访问控制、身份验证、SSL支持等,保障了Web应用程序的安全性和可靠性。

  8. 广泛应用:Tomcat被广泛应用于企业级Web应用程序开发和部署中,是Java技术栈中常用的服务器和应用程序容器之一。

总的来说,Tomcat是一款功能强大、灵活、可靠的Java Servlet容器,适用于各种规模和类型的Web应用程序开发和部署。

Tomcat 安装

注意:以下操作都是在 root 用户下执行。

关于 Java 环境的配置请参考:在 ubuntu 22.04 中,通过二进制安装 Java 环境

1.从官网下载二进制包到服务器的 /usr/local/src/ 目录下:

wget -O /usr/local/src/apache-tomcat-9.0.86.tar.gz https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.86/bin/apache-tomcat-9.0.86.tar.gz

2.将下载好的二进制包解压至下载目录:

tar -zxf /usr/local/src/apache-tomcat-9.0.86.tar.gz -C /usr/local/src/

3.将解压出来的目录移动到 /usr/local/ 目录下并重命名为 tomcat

mv /usr/local/src/apache-tomcat-9.0.86 /usr/local/tomcat

4.在 /etc/profile.d 目录下新建 tomcat 环境配置文件 tomcat.sh 文件,内容为:

cat << 'EOF' > /etc/profile.d/tomcat.sh
CATALINA_HOME=/usr/local/tomcat
PATH=$PATH:${CATALINA_HOME}/bin
EOF

5.执行 source /etc/profile.d/tomcat.sh 命令加载下 tomcat 环境变量

source /etc/profile.d/tomcat.sh

6.在 /usr/local/tomcat/bin/ 目录下创建 tomcat 环境变量文件 setenv.sh, 内容为:

cat << EOF > /usr/local/tomcat//bin/setenv.sh
#!/usr/bin/env bash

# 定义 JAVA_HOME
JAVA_HOME="$(find / -type d -iname 'jdk*' |head -n 1)"

# 定义 tomcat.pid
CATALINA_PID="/usr/local/tomcat/tomcat.pid"

# java 运行参数
JAVA_OPTS="-server -Xms2048m -Xmx4096m -Dfile.encoding=UTF-8 -Duser.timezone=GMT+08 -Djava.security.egd=file:/dev/./urandom"
EOF

7.赋予 /usr/local/tomcat/bin/setenv.sh 文件可执行权限:

chmod 777 /usr/local/tomcat/bin/setenv.sh

8.在 /lib/systemd/system/ 目录下创建 tomcat 启动脚本文件 tomcat.service ,内容为:

cat  << 'EOF' > /lib/systemd/system/tomcat.service
[Unit]
Description=tomcat-game
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
ExecReload=/bin/kill -s HUP $MAINPID
#ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

9.执行命令 systemctl daemon-reload 加载下启动脚:

systemctl daemon-reload

10.执行命令 systemctl enable --now tomcat.service 启动 tomcat 服务并将其设置为开机启动

systemctl enable --now tomcat.service

11.执行命令 systemctl status tomcat.service 查看下 tomcat 启动状态,如果 Active 的状态为 running ,则说明 tomcat 启动成功:

root@iZ5ts4ir4avgeumt2dhyhmZ:~# systemctl status tomcat
● tomcat.service - tomcat-game
Loaded: loaded (/lib/systemd/system/tomcat.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2024-03-11 15:34:41 CST; 7s ago
Process: 1890874 ExecStart=/usr/local/tomcat/bin/startup.sh (code=exited, status=0/SUCCE>
Main PID: 1890890 (java)
Tasks: 29 (limit: 4150)
Memory: 140.6M
CPU: 2.965s
CGroup: /system.slice/tomcat.service
└─1890890 /usr/local/jdk1.8.0_401/bin/java -Djava.util.logging.config.file=/usr>

Mar 11 15:34:41 iZ5ts4ir4avgeumt2dhyhmZ systemd[1]: Starting tomcat-game...
Mar 11 15:34:41 iZ5ts4ir4avgeumt2dhyhmZ startup.sh[1890874]: Tomcat started.
Mar 11 15:34:41 iZ5ts4ir4avgeumt2dhyhmZ systemd[1]: Started tomcat-game.

或者,也可以查看系统是否有监听 java 进程的 8080 和 8005 端口

root@iZ5ts4ir4avgeumt2dhyhmZ:~# ss -lnpt |egrep java
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:* users:(("java",pid=1890890,fd=65))
LISTEN 0 100 *:8080 *:* users:(("java",pid=1890890,fd=57))

Tomcat 测试

打开浏览器,输入服务器 IP:8080,看能否正常访问到 tomcat 欢迎页,如下: