如何在 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 的目录。
第三步:配置Tomcat
默认情况下,Tomcat 侦听端口 8080。如果要更改此设置,可以编辑 conf/server.xml 文件并更改 Connector 元素,如下所示 -
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
在此示例中,Tomcat 将侦听端口 80 而不是 8080。
接下来,您可能需要将 Tomcat 配置为使用不同的端口来执行关闭命令。默认情况下,Tomcat 在端口 8005 上侦听 shutdown 命令。您可以通过编辑conf/server.xml 文件并更改服务器元素来更改此设置,如下所示 -
<Server port="9005" shutdown="SHUTDOWN">
在此示例中,Tomcat 将在端口 9005 上侦听关闭命令。
第四步:启动Tomcat
要启动 Tomcat,请导航到 Tomcat 安装目录中的 bin 目录并运行以下命令 -
./startup.sh
这将在后台启动 Tomcat。您可以通过打开 Web 浏览器并导航到 http://localhost: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 文件。打开文件并在
<user username="admin" password="password" roles="manager-gui,admin-gui"/>
在本例中,用户名是admin,密码是password。您应该用您自己的用户名和密码替换这些值。角色属性指定用户分配到的角色。在这种情况下,用户同时具有 manager-gui 和 admin-gui 角色,这允许他们通过 Web 界面管理 Tomcat。
将更改保存到 tomcat-users.xml 文件后,重新启动 Tomcat 以使更改生效 -
sudo systemctl restart tomcat.service
第7步:配置Tomcat虚拟主机
虚拟主机允许您在同一个 Tomcat 实例上运行多个网站。要配置虚拟主机,请编辑 conf/server.xml 文件并在
<Host name="example.com" appBase="webapps/example">
<Context path="" docBase="."/>
</Host>
在此示例中,我们为 example.com 域创建一个虚拟主机,并将目录 webapps/example 指定为该虚拟主机的应用程序库。
保存对 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 应用程序。