ins*_*eAC 3 apache tomcat ipv4 mod-jk ipv6
我刚刚用 Ubuntu 16 LTS 和 Tomcat 8.5.11 + Apache/2.4.18、mod_jk/1.2.41 设置了我们的第一台机器。我非常熟悉 Ubuntu 14 LTS、Tomcat 7.0.70 和 Apache/2.4.7 mod_jk/1.2.37。
部署我的 servlet 看起来不错,tomcat 或应用程序日志中没有错误,但仍然无济于事。使用 fqdn/app 显示错误 503。使用 ip:port/app 工作正常..
我在 mod_jk.log 中看到了这些条目:
[Fri Feb 24 11:17:49.149 2017] [9219:139689407260416] [info] ajp_connect_to_endpoint::jk_ajp_common.c (1068): (worker1) Failed opening socket to (::1:8009) (errno=111)
[Fri Feb 24 11:17:49.149 2017] [9219:139689407260416] [error] ajp_send_request::jk_ajp_common.c (1728): (worker1) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=111)
Run Code Online (Sandbox Code Playgroud)
-> ::1:8009 为什么我的 worker.host=localhost 解析为 ::1 (IPv6) 而不是 127.0.0.1 (IPv4)?
我还看到了“较新”参数“prefer_ipv6”并将其设置为“worker.prefer_ipv6=0”但没有运气..
解决方法:当我设置 worker.host=127.0.0.1 时,一切正常/就像我习惯的那样。缺点:我知道我的一些同事过去出于某种原因将 127.0.0.1 条目更改为“localhost”(处理中的不同 ip 堆栈?),所以我不是 100% 有信心将其保留为 IPv4-IP。
关于我如何解决这个问题的一些建议?
这是 JK 连接器中的一个错误,它在解析“worker.*.host=”设置中的主机名时总是首选 IPv6。强制最新的 JK 连接器通过 IPv4 连接的唯一方法是使用 IPv4 地址(而不是 DNS 名称)。
另一种选择是配置 tomcat AJP/1.3 侦听器以侦听 IPv6。
在 Apache 的人修复 JK 连接器中的错误之前,这些是目前唯一的选择。
归档时间: |
|
查看次数: |
1218 次 |
最近记录: |