步骤 1. 安装 Java 8

Apache Tomcat 9 需要在服务器上安装 Java 8 或者更新版本。
查看我们之前的教程:如何在 Ubuntu 20.04 上安装 Java

如何在 Ubuntu 20.04 上安装 Apache Tomcat 9

Apache Tomcat 是一个 Web 服务器和 servlet 容器,用于为 Java 应用程序提供服务。

Apache Tomcat 是 Java Servlet 和 JavaServer Pages 技术的开源实现,由 Apache Software Foundation 发布。

本教程涵盖了 Ubuntu 20.04 LTS 服务器上最新版本的 Apache Tomcat 9 的基本安装和一些配置。

步骤 2. 安装 Tomcat 9 Ubuntu 20

01 首先,不建议以root用户运行Apache Tomcat,因此我们将创建一个新的系统用户来运行Apache Tomcat服务器

$sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat

02 现在,转到官方 Apache Tomcat 网站并将最新版本的软件下载到服务器。

$VERSION=9.0.34
$wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz

03 下载完成后,将tar文件解压到/opt/tomcat目录:

$sudo tar -xf /tmp/apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat/

04 Apache Tomcat 定期更新。
因此,为了更好地控制版本和更新,我们将创建一个符号链接,如下所示:

$sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest

05 现在,让我们更改所有 Apache Tomcat 文件的所有权,如下所示:

$chown -R tomcat:tomcat /opt/tomcat/

06 使 bin 目录中的 shell 脚本可执行:

$sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'

07 创建一个 systemd 文件,内容如下:

$vi /etc/systemd/system/tomcat.service
[Unit]
Description=Tomcat 9 server 
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
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

08 现在我们可以使用以下命令启动 Apache Tomcat 9 服务器并使其在启动时启动:

$systemctl daemon-reload
$systemctl enable tomcat
Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /etc/systemd/system/tomcat.service.
$systemctl start tomcat

09 Apache Tomcat 默认侦听端口 8080 。
在访问 Apache Tomcat 服务器之前,我们需要调整防火墙以允许我们的请求到达服务。
使用以下命令:

$sudo ufw allow 8080

通常,在生产环境中运行 Tomcat 时,我们应该使用负载均衡器或者反向代理。

10 我们现在应该能够在我们喜欢的 Web 浏览器中访问 Apache Tomcat 服务器。
打开浏览器并导航到http://IP_address:8080,我们将看到如下所示的Apache Tomcat 主页。

步骤 3. 配置 Apache Tomcat Web 管理界面

01 默认情况下,我们无法访问Apache Tomcat Web管理界面,因为我们还没有创建用户。
Apache Tomcat 用户及其角色在 tomcat-users.xml文件中定义。

打开 tomcat-users.xml文件并添加以下几行:

# vi /opt/tomcat/conf/tomcat-users.xml
<tomcat-users>
<!-
    Comments
-->
   <role rolename="admin-gui"/>
   <role rolename="manager-gui"/>
   <user username="admin" password="PASSWORD_CHANGE_ME" roles="admin-gui,manager-gui"/>
</tomcat-users>

02 默认情况下,Apache Tomcat Web 管理界面配置为仅允许从本地主机访问。
如果我们希望能够从远程 IP 或者从不推荐的任何地方访问 Web 界面,因为它存在安全风险,我们可以打开以下文件并进行以下更改。

$vi /opt/tomcat/webapps/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|192.168.1.*" />
$vi /opt/tomcat/webapps/host-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|192.168.1.*" />

在此配置中,我们允许来自子网 192.168.1.* 的任何 IP 访问 Apache Tomcat Web 管理界面。

03 最后重启 Apache Tomcat 服务器守护进程:

$systemctl restart tomcat
日期:2020-06-02 22:18:50 来源:oir作者:oir