使用 Apache2 mod_jk 作为反向代理时出现 Tomcat 8 503 错误

使用 Apache2 mod_jk 作为反向代理时出现 Tomcat 8 503 错误

我按照本指南使用 Apache2 的 mod_jk 模块作为反向代理在 Ubuntu Server 16.04 上设置 Tomcat 8:

https://www.digitalocean.com/community/tutorials/how-to-encrypt-tomcat-8-connections-with-apache-or-nginx-on-ubuntu-16-04

一切正常,直到最后一步,即将 server.xml 中的 HTTP 和 AJP 连接器更改为仅侦听 localhost。这是我对 AJP 连接器所做的更改:

<Connector port="8009" address="127.0.0.1" protocol="AJP/1.3" redirectPort="8443" />

在此更改之前,输入https://我的主机名带我进入 Tomcat 管理页面;之后,我收到“503 服务不可用”。我已暂时关闭防火墙并删除 AppArmor。这是 mod_jk.log 的相关部分:

jk_open_socket::jk_connect.c (817): connect to ::1:8009 failed (errno=111)
ajp_connect_to_endpoint::jk_ajp_common.c (1068): (ajp13_worker) Failed opening socket to (::1:8009) (errno=111)
ajp_send_request::jk_ajp_common.c (1728): (ajp13_worker) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=111)

可能是什么原因造成的?我该如何解决?

答案1

您在连接器中的定义是address="127.0.0.1".
错误信息显示::1:8009

对我来说,看起来 Tomcat 正在监听 IPv4 地址127.0.0.1但您正在使用 IPv6 连接::1

我认为这可能是个问题。也许您可以直接连接到http://127.0.0.1并且不https://我的主机名。我假设我的主机名被转换为 IPv6 本地主机地址。

相关内容