Apache 雄猫 是一个开源的 Java HTTP Web 服务器,由 Apache 软件基金会 (ASF)。 Tomcat 有助于部署 Java Servlet 和 JavaServer Pages (JSP),并像 HTTP Web 服务器一样为它们提供服务。
在这篇文章中,我们将看到如何安装 Apache CentOS 8 / RHEL 8 上的 Tomcat 10/9。
先决条件
安装 Java
Tomcat 需要在您的机器上安装 Java 8 或更高版本。 您可以安装任何稳定版本的 Oracle JDK 或 OpenJDK。
读: 如何在 CentOS 8 / RHEL 8 上安装 Oracle JAVA
对于这篇文章,我使用的是 OpenJDK。
yum install -y java curl tar
通过发出以下命令验证 Java 安装。
java -version
输出:
openjdk version "1.8.0_275" OpenJDK Runtime Environment (build 1.8.0_275-b01) OpenJDK 64-Bit Server VM (build 25.275-b01, mixed mode)
创建 Tomcat 服务帐户
作为最佳实践,Tomcat 服务不应以 root 用户身份运行。 因此,创建一个普通的 Linux 用户来运行 Tomcat 服务。
useradd -d /opt/tomcat -s /bin/nologin tomcat
安装 Apache 雄猫
下载Tomcat
下载 Apache 来自 Tomcat 官方网站 并将其保存在您的工作目录中。
在撰写本文时,Tomcat v9.0.22 可供安装。
浏览器
终端
### Apache Tomcat 10.x curl https://downloads.apache.org/tomcat/tomcat-10/v10.0.4/bin/apache-tomcat-10.0.4.tar.gz -o apache-tomcat-10.0.4.tar.gz ### Apache Tomcat 9.x curl https://downloads.apache.org/tomcat/tomcat-9/v9.0.44/bin/apache-tomcat-9.0.44.tar.gz -o apache-tomcat-9.0.44.tar.gz
设置Tomcat
提取 Tomcat tarball 并将其移动到您想要的 (/选择/ tomcat) 目录。
tar -zxvf apache-tomcat-*.tar.gz mv apache-tomcat-*/* /opt/tomcat/
将目录的所有权更改为 tomcat 用户。
chown -R tomcat:tomcat /opt/tomcat/
创建系统文件
我们可以配置systemd为你启动Tomcat服务,也可以帮助我们自动启动 Apache Tomcat 服务在系统上启动。
Tomcat 的 systemd 服务文件需要 Java 安装位置。 因此,请使用以下命令列出系统上可用的 Java 版本。
alternatives --list | grep ^java
输出:
java auto /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el8_0.x86_64/jre/bin/java
目前,我的系统上只有 Java 1.8。
创建一个 tomcat systemd 服务文件。
vi /etc/systemd/system/tomcat.service
将以下信息添加到 systemd 服务文件中。 C根据您的环境更改值。
[Unit] Description=Apache Tomcat Web Application Container Wants=network.target After=network.target [Service] Type=forking Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el8_0.x86_64/jre Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid Environment=CATALINA_HOME=/opt/tomcat Environment="CATALINA_OPTS=-Xms512M -Xmx1G -Djava.net.preferIPv4Stack=true" Environment="JAVA_OPTS=-Djava.awt.headless=true" ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh SuccessExitStatus=143 User=tomcat Group=tomcat UMask=0007 RestartSec=10 Restart=always [Install] WantedBy=multi-user.target
SELinux
如果 SELinux 阻止启动 tomcat,请考虑禁用它。
setenforce 0 sed -i 's/ELINUX=enforcing/ELINUX=disabled/g' /etc/selinux/config
开始 Apache 雄猫
重新加载 systemd 守护进程。
systemctl daemon-reload
启动Tomcat服务; 跑:
systemctl start tomcat
检查Tomcat的状态,运行:
systemctl status tomcat
启用 Tomcat 服务以在系统启动时自动启动。
systemctl enable tomcat
默认情况下,Tomcat 运行在 8080 端口。使用 netstat 命令检查服务是否在 8080 端口上侦听。
netstat -antup | grep 8080
输出:
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 2904/java
防火墙
在防火墙中允许8080端口,以便我们可以访问 Apache 来自外部网络的Tomcat。
firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload
配置 Apache Tomcat 网页界面
Apache Tomcat 可以通过 Web Manager 进行管理。
使用 Web 管理器,您可以
- 部署新应用
- 在指定的上下文中部署新应用程序
- 列出活动或非活动应用程序
- 启动和停止 Web 应用程序
此外,Tomcat 具有 Host Manager 来管理其虚拟主机。
用户管理
The Web 和 Host Manager 都受密码保护,需要用户名和密码才能访问。
只有具有“manager-gui“ 和 ”admin-gui” 角色分别被允许访问 Web 和 Host 管理器。
这些用户和角色定义在 tomcat-users.xml.
vi /opt/tomcat/conf/tomcat-users.xml
将以下两行放在最后一行的正上方。
<role rolename="admin-gui,manager-gui"/> <user username="admin" password="tomcat" roles="manager-gui,admin-gui"/>
允许访问
出于安全原因,Web 和主机管理器都只能从本地主机访问,即从服务器本身访问。
要从远程系统启用对 Web 和主机管理器的访问,您需要将您的网络添加到允许列表中。
为此,请按照以下步骤操作。
网页管理器
vi /opt/tomcat/webapps/manager/META-INF/context.xml
使用您访问 Web 和主机管理器的源 IP 更新以下行。
允许所有人
.* 将允许每个人都可以访问 Web 管理器。
allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1|.*" />
允许组织网络
您也可以只允许您的组织网络。 例如:要仅允许 192.168.1.0/24 网络,您可以使用以下值。
allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1|192.168.1.*" />
主机管理器
vi /opt/tomcat/webapps/host-manager/META-INF/context.xml
使用您访问主机管理器的源 IP 更新以下行。
允许所有人
.* 将允许每个人都可以访问主机管理器。
allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1|.*" />
允许组织网络
您也可以只允许您的组织网络。 例如:要仅允许 192.168.1.0/24 网络,您可以使用以下值。
allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1|192.168.1.*" />
重启Tomcat服务。
systemctl restart tomcat
访问Tomcat
打开 Web 浏览器并将其指向:
https://ip.add.re.ss:8080
您现在将获得 Tomcat 的默认页面。
Manager App (manager-gui): – 需要登录。 用户名: admin,密码:tomcat。
在这里,您可以部署应用程序、在指定的上下文中部署应用程序、启动、停止、重新加载和取消部署应用程序。
此外,您还可以看到 雄猫 服务器状态.
主机管理器(admin-gui): – 需要登录。 用户名: admin,密码:tomcat。
在这里,您可以管理 Tomcat 的虚拟主机。
结论
就这样。 我希望您已经学会了如何在 CentOS 8 / RHEL 8 上安装 Tomcat 10/9。 第一个网络应用程序. 作为安全建议,请考虑实施 SSL/TLS 用于 Tomcat