本教程适用于以下操作系统版本
- Debian 12(Bookworm)
- Debian 10(Buster)
本页内容
- 前置条件
- 安装 Java OpenJDK
- 通过仓库安装 Apache Tomcat
- 通过二进制包安装 Tomcat
- 创建 Tomcat 管理员
- 配置 Nginx 作为反向代理
- 总结
Apache Tomcat(简称 "Tomcat")是一个用于 Java 代码和应用程序的免费开源 Java Servlet 容器。它提供了一个 Java 代码可以运行的 "纯 Java" HTTP 服务器环境。Tomcat 还实现了 JavaServer Pages、Java Expression Language 和 WebSocket 技术。
在本指南中,我们将向您展示如何在 Debian 12 服务器上安装 Apache Tomcat 10。您还将学习如何将 Nginx 配置为 Apache Tomcat 的反向代理。
前置条件
开始之前,请确保您具备以下条件:
- 一台 Debian 12 服务器。
- 一个具有管理员权限的非 root 用户。
安装 Java OpenJDK
Apache Tomcat 主要使用 Java 编写,因此在安装它之前,您必须在系统上安装 Java。在本示例中,您将安装 Java OpenJDK 17,该版本在 Debian 仓库中默认提供。
在开始安装 Java 之前,使用以下命令更新并刷新您的 Debian 仓库。
sudo apt update

现在使用以下命令将 Java OpenJDK 软件包安装到您的 Debian 服务器。default-jdk 软件包指代 Java OpenJDK 17,它是 Java 的 LTS 版本。
sudo apt install default-jdk
输入 y 以确认安装。

安装 Java 后,运行以下命令验证您的 Java 版本。您将看到已安装 Java OpenJDK 17。
java --version

通过仓库安装 Apache Tomcat
默认情况下,最新的 Debian 12 仓库提供 Apache Tomcat 10。如果您需要通过 APT 安装 Apache Tomcat,则此方法适合您。
首先,使用以下命令检查 tomcat10 软件包。
sudo apt info tomcat10
在以下输出中,您可以看到 Apache Tomcat 10 在 Debian 主仓库的 java 部分中可用。

如果您想通过 APT 安装 Tomcat,请在系统上运行以下命令。输入 y 以确认安装。
sudo apt install tomcat10 tomcat10-common tomcat10-admin tomcat10-user tomcat10-examples

安装完成后,tomcat10 服务应该正在运行。使用以下命令进行验证。
sudo systemctl is-enabled tomcat10
sudo systemctl status tomcat10
如果 tomcat10 服务正在运行,您应获得如下输出:

最后,打开您的 Web 浏览器,使用默认的 Tomcat 端口 8080 访问服务器 IP 地址 http://192.168.5.15:8080/。如果安装成功,您应看到 Apache Tomcat 10 的默认索引页。

通过二进制包安装 Tomcat
现在,如果您想安装最新版本的 Apache Tomcat,可以通过二进制包安装。在本节中,您将学习如何在 Debian 服务器上执行此操作。
首先,使用以下命令创建一个新的系统用户 tomcat。
sudo useradd -m -u -d /opt/tomcat -s /usr/sbin/nologin tomcat
访问 Apache Tomcat 下载页面并检查 Tomcat 的最新版本。然后运行以下命令下载最新的 Apache Tomcat 版本。
export VERSION=10.1.19
wget https://www-eu.apache.org/dist/tomcat/tomcat-10/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz
下载完成后,运行以下命令创建一个新的 Apache Tomcat 安装目录 /opt/tomcat,并将 Tomcat 二进制包解压到其中。
mkdir -p /opt/tomcat
sudo tar -xf apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat
现在为解压后的 Tomcat 目录创建一个指向 /opt/tomcat/latest 的新符号链接。然后,将 /opt/tomcat 目录的所有权更改为 tomcat 用户。
sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest
sudo chown -R tomcat:tomcat /opt/tomcat
接下来,使用 nano 编辑器创建一个新的 systemd 服务文件 /etc/systemd/system/tomcat.service。
sudo nano /etc/systemd/system/tomcat.service
粘贴以下配置以设置 Apache Tomcat 的服务文件。
[Unit] Description=Tomcat 10 servlet container After=network.target [Service] Type=forking User=tomcat Group=tomcat Environment="JAVA_HOME=/usr/lib/jvm/default-java" Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true" Environment="CATALINA_BASE=/opt/tomcat/latest" Environment="CATALINA_HOME=/opt/tomcat/latest" Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid" Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC" ExecStart=/opt/tomcat/latest/bin/startup.sh ExecStop=/opt/tomcat/latest/bin/shutdown.sh [Install] WantedBy=multi-user.target
保存文件并退出编辑器。
运行以下命令重新加载 systemd 管理器,然后启动并设置 tomcat 服务开机自启。
sudo systemctl daemon-reload
sudo systemctl start tomcat
sudo systemctl enable tomcat

启动后,使用以下命令验证 tomcat 服务。确保您的 Tomcat 服务如下所示正在运行。
sudo systemctl status tomcat

最后,打开您的 Web 浏览器并访问 http://192.168.5.15:8080/。如果一切顺利,您应看到 Apache Tomcat 索引页。

创建 Tomcat 管理员
至此,您已在 Debian 服务器上安装了 Apache Tomcat。在下一步中,您将为 Apache Tomcat 设置身份验证,并启用 Tomcat manager 和 host-manager。
首先,使用以下 nano 编辑器编辑 Tomcat 配置文件 /etc/tomcat10/tomcat-users.xml。
sudo nano /etc/tomcat10/tomcat-users.xml
在 ' tomcat-users ' 部分之间插入以下行。务必将默认用户名 admin 和密码 tomcatadmin 更改为您自己的凭据。
<tomcat-users> <!-- user: admin pass: tomcatadmin --> <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <role rolename="admin-gui"/> <role rolename="admin-script"/> <user username="admin" password="tomcatadmin" roles="manager-gui, manager-script, manager-jmx, manager-status, admin-gui, admin-script"/> </tomcat-users>
保存并退出文件。
现在,使用 nano 编辑器打开 Tomcat manager 和 host-manager 的配置文件。
sudo nano /usr/share/tomcat10-admin/host-manager/META-INF/context.xml
sudo nano /usr/share/tomcat10-admin/manager/META-INF/context.xml
注释掉 '
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
保存文件并退出编辑器。
接下来,使用以下命令重启 tomcat 服务以应用新的 Tomcat 配置。
sudo systemctl restart tomcat
最后,访问 http://192.168.5.15:8080/manager 进入 Tomcat manager,并访问 http://192.168.5.15:8080/host-manager 进入 Tomcat host manager。在提示时输入您的管理员用户和密码,然后单击 Sign in。

如果成功,您应看到 Apache Tomcat manager 仪表板。

对于 Tomcat host-manager,其界面如下所示:

配置 Nginx 作为反向代理
在本指南中,您将使用 Nginx 作为反向代理来运行 Apache Tomcat。在本节中,您将安装 nginx 并设置 server block 配置,作为运行在 8080 端口上的 Tomcat 的反向代理。
运行以下命令将 Nginx 安装到您的系统。输入 y 以确认安装。
sudo apt install nginx

安装完成后,使用 nano 编辑器创建一个新的 server block 配置 /etc/nginx/sites-available/tomcat.conf。
sudo nano /etc/nginx/sites-available/tomcat.conf
添加以下配置,将 Nginx 设置为 Apache Tomcat 的反向代理。
server {
listen 80;
server_name tomcat.howtoforge.local;
access_log /var/log/nginx/tomcat-access.log;
error_log /var/log/nginx/tomcat-error.log;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080/;
}
}
完成后保存并退出文件。
现在,激活 server block 配置并验证您的 Nginx 语法。如果一切顺利,您应获得类似 ' test is successful - syntax is ok ' 的输出。
sudo ln -s /etc/nginx/sites-available/tomcat.conf /etc/nginx/sites-enabled/
sudo nginx -t

接下来,重启 Nginx 服务以应用新更改,并验证以确保服务正在运行。
sudo systemctl restart nginx
sudo systemctl status nginx
如果 Nginx 正在运行,您应获得如下输出:

最后,回到您的 Web 浏览器并访问 http://tomcat.howtoforge.local/。您应看到 Apache Tomcat 的默认索引页。

总结
恭喜!您现在已在 Debian 12 服务器上安装了 Apache Tomcat 10。您已经学习了两种安装 Apache Tomcat 的方法,一种是通过 APT 仓库,另一种是手动通过二进制包。最后,您还学习了如何将 Nginx 配置为 Tomcat 安装的反向代理。