在本文中,我们将向您展示如何在 Ubuntu 上安装和配置 Tomcat 10,以及如何使用 mod_jk 连接器将其与 Apache HTTP Server 集成。

Apache Tomcat 是一个开源Web 服务器和 servlet 容器,用于部署和服务 Java Web 应用程序。大多数现代 Java Web 框架都基于 servlet,例如 JavaServer Faces、Struts、Spring 等。

Apache Tomcat 还默认在 8080 端口上提供了一个 HTTP 连接器,即 Tomcat 也可以用作 HTTP 服务器。但是 Tomcat 的性能不如 Apache HTTP 服务器等指定 Web 服务器的性能。

在大多数生产中,Tomcat 与 Apache HTTP Server 结合使用,其中 Apache HTTP Server 处理 html、图像等静态内容,并将对动态内容的请求转发给 Tomcat。


本安装和配置指南适用于 Ubuntu 上带有 Tomcat 10 的 Apache。

1.安装Java

首先,像往常一样,更新你的包:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt update

您必须在系统上安装 Java 才能运行 Tomcat 服务器。Tomcat 10 需要在您的系统上安装 Java SE 8 或更高版本。运行以下命令并安装 OpenJDK 11 JDK 包:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install openjdk-11-jdk

检查当前活动的 Java 版本:

linuxmi@linuxmi:~/www.linuxmi.com$ java -version

输出如下:

openjdk version "11.0.13" 2021-10-19
OpenJDK Runtime Environment (build 11.0.13+8-Ubuntu-0ubuntu1.20.04)
OpenJDK 64-Bit Server VM (build 11.0.13+8-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)

2.创建Tomcat系统用户

在root用户下运行 Tomcat 服务器存在安全风险。我们建议创建单独的用户帐户来运行 Tomcat 服务器。

以下命令将在您的系统上创建一个名为tomcat的用户和组:

3. 安装和配置 Apache Tomcat 10

Tomcat 是一个独立于平台的工具,只要安装了 Java,安装过程就很简单。您只需要从官网下载所需的版本,然后在您的文件系统上解压即可。

现在从官方 Tomcat 下载页面下载最新的 Tomcat 二进制版本。

linuxmi@linuxmi:~/www.linuxmi.com$ wget https://downloads.apache.org/tomcat/tomcat-10/v10.0.17/bin/apache-tomcat-10.0.17.tar.gz

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

linuxmi@linuxmi:~/www.linuxmi.com$ sudo tar xzvf apache-tomcat-10*tar.gz -C /opt/tomcat --strip-components=1

接下来,设置正确的文件权限:

您应该在 Tomcat 服务器中为 Web 应用程序管理器创建一个用户。必须设置新用户帐户才能使用 Apache Tomcat Web 应用程序管理器。

为此,请 tomcat-users.xml 在编辑器中编辑文件:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo vim /opt/tomcat/conf/tomcat-users.xml

将以下代码粘贴到<tomcat-users> </tomcat-users>标签中。确保更改PASSWORD admin 和 manager访问权限。

Tomcat 提供了一个基于 Web 的管理控制台。默认的 Tomcat 服务器不允许远程访问 Manager 和 Host Manager 应用程序。您只能从 localhost 访问它们。为了允许远程连接,请按照以下说明进行操作。

创建一个文件 conf/Catalina/localhost/manager.xml

linuxmi@linuxmi:~/www.linuxmi.com$ sudo vim /opt/tomcat/conf/Catalina/localhost/manager.xml

添加以下内容:

您还需要为 host-manager webapp 创建 xml 文件以允许远程主机访问。

linuxmi@linuxmi:~/www.linuxmi.com$ sudo vim /opt/tomcat/conf/Catalina/localhost/host-manager.xml

添加以下内容:

<Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/host-manager">
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>

4. 创建 Tomcat 系统服务

我们需要创建一个启动脚本来将 Tomcat 作为 systemd 服务进行管理。让我们创建一个tomcat.service文件。

linuxmi@linuxmi:~/www.linuxmi.com$ sudo vim /etc/systemd/system/tomcat.service

将以下内容粘贴到文件中:

重新加载 systemd 守护进程以应用更改:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl daemon-reload

将 Tomcat 设置为开机自动启动:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl enable tomcat

5. 安装 Apache HTTP 服务器

Apache 在 Ubuntu 的默认软件存储库中可用。要安装它,请键入以下命令:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install apache2

6. 配置 Tomcat 以使用 Apache

要将 Apache Tomcat 服务器进程与 Apache HTTP 服务器集成,我们需要 mod_jk 模块,它实现了 Tomcat 和 Apache 之间的接口,并结合了一些小步骤来根据我们的需要配置 Apache 和 Tomcat。

6.1 安装 mod_jk 模块

安装和配置mod_jk是让 Web 服务器和应用程序服务器协同工作的关键。所以,让我们安装它:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install libapache2-mod-jk

6.2 使用 Apache 和 Tomcat 配置 mod_jk。

您需要在 Tomcat 中启用 AJP 连接器,以便 Apache 服务器可以将请求重定向到 Tomcat。您是通过编辑 Tomcat 的server.xml文件来完成的。

linuxmi@linuxmi:~/www.linuxmi.com$ sudo vim /opt/tomcat/conf/server.xml

确保下面的 AJP 连接器处于活动状态且未被注释掉。

我们需要创建/etc/apache2/workers.properties文件。该文件定义了 Apache 可以向其传递请求的 Tomcat ‘worker’ 列表。

linuxmi@linuxmi:~/www.linuxmi.com$ sudo vim /etc/apache2/workers.properties

并将以下内容粘贴到文件中:

# Define 1 real worker using ajp13
worker.list=worker1

# Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009

接下来在主 Apache 配置文件中引用此文件apache2.conf

linuxmi@linuxmi:~/www.linuxmi.com$ sudo vim /etc/apache2/apache2.conf

我们在最后添加这些行:

6.3 配置使用 Apache 管理的 URL

此时,您需要配置 Apache 以告诉它要处理哪些 URL 并将其移交给 Tomcat,以及您希望 Apache 自己处理哪些 URL。

linuxmi@linuxmi:~/www.linuxmi.com$ sudo vim /etc/apache2/sites-enabled/000-default.conf

DocumentRoot在条目下添加以下行。这样您就可以通过 Apache Web 服务器请求 JRS。

JkMount /examples worker1
JkMount /examples/* worker1

7. 如何验证它是否正常工作

重启 Apache 和 Tomcat 服务:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl restart apache2
linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl restart tomcat

启动服务器后,打开 Internet 浏览器并导航到 URL http://server_ip_address:8080。如果您看到与下图类似的页面,则表示 Tomcat 已正确安装。

验证 Apache HTTP Server 和 Tomcat 之间的集成是否正常工作的一种简单方法是请求 Tomcat 应提供的示例文件之一。

将您的浏览器指向http://server_ip_address/examples/并运行一些示例应用程序。

恭喜!您已成功将 Tomcat 与 Apache HTTP Server 集成。

发表评论