无法将 Tomcat 与 Apache HTTP Server 集成
Unable to integrate Tomcat with Apache HTTP Server
我遵循了几个关于如何将 Appache HTTP Server 与 Tomcat 集成的教程,但是 tomcat 服务器就是不加载。我在 Ubuntu 20.04.1
上执行此操作
我可以加载站点 http://myurl.com:8080/examples. However, when I call https://myurl.com/examples/ 我收到“找不到”错误消息:
在此服务器上找不到请求的 URL。
Apache/2.4.41(Ubuntu) 服务器位于 myurl.com 端口 443
我认为 https://myurl.com/examples 应该可以。
我在 /opt/tomcat/conf 中的设置包括 server.xml 和 AJP 1.3 连接器的一行,如下所示
<Connector protocol="AJP/1.3" port="8009" secretRequired="false" redirectPort="8443" enableLookups="false" />
我的 /opt/tomcat/conf/tomcat-users.xml 包含一个条目 admin-gui
防火墙允许 Apache 和端口 8080(以及其他)
我的/etc/systemd/system/tomcat.服务如下
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64/
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true - Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
我的/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
# configure jk-status
worker.list=jk-status
worker.jk-status.type=status
worker.jk-status.read_only=true
# configure jk-manager
worker.list=jk-manager
worker.jk-manager.type=status
它在 /etc/apache2/mods-available/jk.conf 中被引用为
JkWorkersFile /etc/apache2/workers.properties
在 /etc/apache2/sites-enabled/000-default.conf 我有
<VirtualHost *:80>
DocumentRoot /var/www/html
JKMount /* worker1
</VirtualHost>
Tomcat 状态为 运行(活动)
我错过了什么?
您只为http 虚拟主机提供了JKMount。您需要在 https 虚拟主机(或等效主机)中添加 JkMountCopy On
。
JKMounts 默认情况下不会在虚拟主机之间复制。
我遵循了几个关于如何将 Appache HTTP Server 与 Tomcat 集成的教程,但是 tomcat 服务器就是不加载。我在 Ubuntu 20.04.1
上执行此操作我可以加载站点 http://myurl.com:8080/examples. However, when I call https://myurl.com/examples/ 我收到“找不到”错误消息:
在此服务器上找不到请求的 URL。 Apache/2.4.41(Ubuntu) 服务器位于 myurl.com 端口 443
我认为 https://myurl.com/examples 应该可以。
我在 /opt/tomcat/conf 中的设置包括 server.xml 和 AJP 1.3 连接器的一行,如下所示
<Connector protocol="AJP/1.3" port="8009" secretRequired="false" redirectPort="8443" enableLookups="false" />
我的 /opt/tomcat/conf/tomcat-users.xml 包含一个条目 admin-gui
防火墙允许 Apache 和端口 8080(以及其他)
我的/etc/systemd/system/tomcat.服务如下
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64/
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true - Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
我的/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
# configure jk-status
worker.list=jk-status
worker.jk-status.type=status
worker.jk-status.read_only=true
# configure jk-manager
worker.list=jk-manager
worker.jk-manager.type=status
它在 /etc/apache2/mods-available/jk.conf 中被引用为
JkWorkersFile /etc/apache2/workers.properties
在 /etc/apache2/sites-enabled/000-default.conf 我有
<VirtualHost *:80>
DocumentRoot /var/www/html
JKMount /* worker1
</VirtualHost>
Tomcat 状态为 运行(活动)
我错过了什么?
您只为http 虚拟主机提供了JKMount。您需要在 https 虚拟主机(或等效主机)中添加 JkMountCopy On
。
JKMounts 默认情况下不会在虚拟主机之间复制。