问题:我无法使用 mod_jk 通过 Apache HTTP Server 连接到我的 Apache Tomcat 站点。当我使用端口号定义 URL 时,我可以访问 Tomcat 网站,例如:http://localhost:8080/tomcat-demo/helloworld,但当我执行 http://localhost/tomcat-demo/helloworld 时,无法找到返回响应的站点:
“404 未找到。在此服务器上未找到所请求的 URL。Apache/2.4.46 (Ubuntu) 服务器位于本地主机端口 8080”
软件
Ubuntu 桌面
Tomcat 9
Apache HTTP 服务器 2.4
我已遵循以下指南:
https://medium.com/@nariyapratik84/installing-tomcat-9and-apache2-with-mod-jk-on-ubuntu-updated-ddc4e8f5d794
https://community.jaspersoft.com/wiki/connecting-apache-web-server-tomcat-and-writing-re-direct-rules
https://www.xmodulo.com/configure-tomcat-cluster-ubuntu.html
所有步骤:
- 重新安装apache2和tomcat9
apt-get remove apache2 && apt-get remove tomcat9
apt-get purge apache2 && apt-get purge tomcat9
apt-get update && apt-get install apache2 && apt-get install tomcat9
- 防火墙允许端口 8080
ufw allow "Apache Full" && ufw allow 8080 && ufw enable
- 为 Tomcat 创建测试应用程序
cd /var/lib/tomcat9/webapps
sudo mkdir tomcat-demo
sudo mkdir tomcat-demo/helloworld
sudo nano tomcat-demo/helloworld/index.jsp
- 粘贴以下内容到 index.jsp
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h1>Hello World</h1>
Today is: <%= new java.util.Date().toString() %>
</body>
</html>
我现在可以访问 http://localhost:8080/tomcat-demo/helloworld
- 安装 mod_jk 并启用 tomcat 连接器
apt-get install libapache2-mod-jk
nano /etc/tomcat9/server.xml <-- Uncomment:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
- 配置 mod_jk
nano /etc/apache2/workers.properties <-- Add the following code inside:
# Define 1 real worker using ajp13
worker.list=worker1
# Set properties for worker (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
nano /etc/apache2/mods-available/jk.conf <-- Add:
JkWorkersFile /etc/apache2/workers.properties
- 配置 Apache HTTP 服务器虚拟主机
nano /etc/apache2/sites-enabled/000-default.conf <-- Add below:
<VirtualHost *:8080>
JkMount /api worker1
</VirtualHost>
- 重新启动 Apache 和 Tomcat
service tomcat9 restart && service apache2 restart
即使重新启动后,我也无法访问 http://localhost/tomcat-demo/helloworld。Apache2 和 Tomcat9 中的所有其他设置都是默认的(因为我重新安装并清除了它们)。$JAVA_HOME 设置正确。
谢谢!