如何在 CentOS 8/7 中安装和配置 Apache Tomcat 9?
Apache Tomcat 是一款流行的开源 Web 服务器和 Servlet 容器,广泛用于部署基于 Java 的 Web 应用程序。本文将向您展示如何在 CentOS 8/7 上安装和配置 Apache Tomcat 9。
步骤 1:安装 Java
安装 Apache Tomcat 的第一步是安装 Java。Tomcat 需要安装 Java 开发工具包 (JDK) 版本 8 或更高版本。您可以通过运行以下命令检查系统上已安装的 Java 版本:
java -version
如果您的系统上未安装 Java,您可以通过运行以下命令进行安装:
sudo dnf install java-1.8.0-openjdk-devel
这将安装 OpenJDK 8 开发工具包,这是 Tomcat 9 推荐的 Java 版本。
步骤 2:下载并安装 Apache Tomcat
安装 Java 后,您可以从 Apache 官方网站下载 Apache Tomcat 9 的最新版本。您可以使用以下命令下载 Tomcat 9 归档文件:
wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.59/bin/apache-tomcat-9.0.59.tar.gz
下载完成后,使用以下命令解压 Tomcat 归档文件:
tar -xzf apache-tomcat-9.0.59.tar.gz
这将把 Tomcat 文件解压到名为 apache-tomcat-9.0.59 的目录中。
步骤 3:配置 Tomcat
默认情况下,Tomcat 监听端口 8080。如果要更改此端口,可以编辑 conf/server.xml 文件并更改 Connector 元素,如下所示:
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
在此示例中,Tomcat 将监听端口 80 而不是 8080。
接下来,您可能希望配置 Tomcat 使用不同的端口用于关闭命令。默认情况下,Tomcat 监听端口 8005 用于关闭命令。您可以通过编辑 conf/server.xml 文件并更改 Server 元素来更改此端口,如下所示:
<Server port="9005" shutdown="SHUTDOWN">
在此示例中,Tomcat 将监听端口 9005 用于关闭命令。
步骤 4:启动 Tomcat
要启动 Tomcat,请导航到 Tomcat 安装目录中的 bin 目录并运行以下命令:
./startup.sh
这将在后台启动 Tomcat。您可以通过打开 Web 浏览器并导航到 https://127.0.0.1:8080 来访问 Tomcat Web 界面。
步骤 5:将 Tomcat 配置为系统服务
如果希望 Tomcat 在系统启动时自动启动,可以将其配置为系统服务。为此,请在 /etc/systemd/system/ 目录中创建一个名为 tomcat.service 的新文件,内容如下:
[Unit] Description=Apache Tomcat 9 After=syslog.target network.target [Service] User=tomcat Group=tomcat Type=forking Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid Environment=CATALINA_HOME=/opt/tomcat Environment=CATALINA_BASE=/opt/tomcat ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh [Install] WantedBy=multi-user.target
保存文件,然后重新加载 systemd 守护进程以识别新的服务文件:
sudo systemctl daemon-reload
然后,启用 Tomcat 服务以在启动时自动启动:
sudo systemctl enable tomcat.service
最后,启动 Tomcat 服务:
sudo systemctl start tomcat.service
您可以使用以下命令检查 Tomcat 服务的状态:
sudo systemctl status tomcat.service
这将显示 Tomcat 服务是否正在运行。
步骤 6:配置 Tomcat 安全性
默认情况下,Tomcat 不需要身份验证即可访问其 Web 界面。这可能存在安全风险,尤其是在 Tomcat 运行在公共网络上的情况下。要保护 Tomcat,可以向 conf/tomcat-users.xml 文件添加用户名和密码。打开文件并在 <tomcat-users> 和 </tomcat-users> 标记之间添加以下行:
<user username="admin" password="password" roles="manager-gui,admin-gui"/>
在此示例中,用户名为 admin,密码为 password。您应该将这些值替换为您自己的用户名和密码。roles 属性指定分配给用户的角色。在本例中,用户同时具有 manager-gui 和 admin-gui 角色,这允许他们通过 Web 界面管理 Tomcat。
保存对 tomcat-users.xml 文件的更改后,重新启动 Tomcat 以使更改生效:
sudo systemctl restart tomcat.service
步骤 7:配置 Tomcat 虚拟主机
虚拟主机允许您在同一 Tomcat 实例上运行多个网站。要配置虚拟主机,请编辑 conf/server.xml 文件并在 <Host> 元素内添加以下行:
<Host name="example.com" appBase="webapps/example"> <Context path="" docBase="."/> </Host>
在此示例中,我们正在为域名 example.com 创建一个虚拟主机,并将目录 webapps/example 指定为此虚拟主机的应用程序基础。<Context> 元素设置此虚拟主机的根上下文。
保存对 server.xml 文件的更改后,创建目录 webapps/example 并将您的 Web 应用程序部署到该目录中。
虽然本文中概述的步骤特定于 CentOS,但可以通过少量修改将其应用于其他 Linux 发行版。此外,在配置 Tomcat 服务器时,您可能还需要考虑以下几点:
HTTPS - 默认情况下,Tomcat 在端口 8080 上侦听 HTTP 请求。要启用 HTTPS,您需要配置 Tomcat 以使用 SSL 证书。您可以按照 Tomcat 文档中提供的说明进行操作。
性能调整 - Tomcat 提供了许多可用于优化其性能的配置选项。这些选项包括调整线程池大小、设置 JVM 内存设置以及优化垃圾回收设置。您可以在 Tomcat 文档中找到有关性能调整的更多信息。
日志记录 - Tomcat 提供了一个全面的日志记录系统,可用于监视服务器的性能和活动。您可以通过编辑 conf/logging.properties 文件来配置日志记录系统。
监控 - 为了确保您的 Tomcat 服务器平稳运行,您可能需要考虑使用 Nagios 或 Zabbix 等监控工具。这些工具可用于监控服务器性能、跟踪资源使用情况并提醒您潜在的问题。
文件权限 - 安装和配置 Apache Tomcat 时,务必确保设置了正确的文件权限。您可以通过运行以下命令来实现:
sudo chown -R tomcat:tomcat /opt/tomcat sudo chmod +x /opt/tomcat/bin/*.sh
这些命令确保 tomcat 用户拥有 Tomcat 安装目录,并且 bin 目录中的脚本是可执行的。
防火墙 - 为了确保服务器的安全,务必配置防火墙以允许在适当的端口上进行通信。例如,要允许在端口 8080 上进行通信,可以运行以下命令:
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent sudo firewall-cmd --reload
这将为传入的 TCP 通信打开端口 8080。
备份 - 为了确保服务器故障或数据丢失时数据安全,务必定期备份 Tomcat 安装和配置文件。您可以使用 tar 或 rsync 等工具创建备份,也可以使用 rsnapshot 或 Bacula 等备份工具。
资源限制 - 为了确保您的 Tomcat 服务器不会消耗过多的资源,您可以限制其可使用的 CPU、内存和其他资源的数量。您可以使用 ulimit 命令设置这些限制,也可以使用 cgroups 等工具管理资源使用情况。
JMX 监控 - Tomcat 提供了对 JMX 监控的内置支持,允许您使用 JConsole 或 VisualVM 等工具监控 Tomcat 服务器的性能。要启用 JMX 监控,可以在 Tomcat 启动脚本中添加以下行:
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote"
然后,您可以使用 JMX 监控工具连接到 Tomcat 服务器并监控其性能。
连接池 - 连接池可以通过减少建立新数据库连接相关的开销来提高 Tomcat 服务器的性能。Tomcat 通过其 JNDI 资源提供对连接池的内置支持。您可以通过编辑 conf/context.xml 文件并添加 Resource 元素来配置连接池。
会话持久性 - 默认情况下,Tomcat 将会话数据存储在内存中,如果服务器崩溃或需要重新启动,这可能会成为问题。为了确保会话数据在服务器重新启动后仍然存在,您可以配置 Tomcat 以使用持久性会话管理器。Tomcat 提供了几种会话持久性选项,包括基于文件的存储、基于 JDBC 的存储和分布式缓存。
通过采取这些额外的步骤,您可以确保您的 Tomcat 服务器平稳、安全地运行,并针对性能进行了优化。
结论
在本文中,我们向您展示了如何在 CentOS 8/7 上安装和配置 Apache Tomcat 9。我们介绍了安装 Java、下载和安装 Tomcat、配置 Tomcat、启动 Tomcat、将 Tomcat 配置为系统服务、保护 Tomcat 以及配置 Tomcat 虚拟主机等步骤。通过这些步骤,您可以设置一个健壮且安全的 Tomcat 服务器来部署您的 Java Web 应用程序。