2017-02-24 126 views
1

我刚刚用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非常熟悉。Mod_jk workers - ipv4/ipv6/fqdn

部署我的servlet似乎很好,在tomcat或应用程序日志中没有错误,但仍然无济于事。 使用FQDN /应用程序显示错误503 使用IP:端口/应用程序工作得很好..

我看到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) 

- > :: 1:8009 为什么我的worker.host = localhost解析为:: 1(IPv6)而不是127.0.0.1(IPv4)?

我也看到了“新的”参数“prefer_ipv6”并将其设置为“worker.prefer_ipv6 = 0”,但没有运气..

解决方法: 当我设置worker.host = 127.0.0.1一切正常工作/因为我习惯了。 下载: 我知道我的一些同事过去因为某种原因(处理中有不同的ip堆栈?)将127.0.0.1条目更改为“localhost”,所以我不能百分之一百确信地将它留给IPv4-IP。

有关如何解决这个问题的建议?

+0

请确认您的机器上的所有端口都已打开 – Ghayel

回答

1

这是JK连接器中的一个错误,它在解析“worker。*。host =”设置中的主机名时始终偏好IPv6。强制最新的JK连接器通过IPv4连接的唯一方法是使用IPv4地址(而不是DNS名称)。

另一种选择是配置tomcat AJP/1.3侦听器来侦听IPv6。

直到Apache的人们修复了JK连接器中的错误之后,这些才是现在的唯一选项。