我们遇到了一些虚假问题,这些问题可能是由于 IPv6 兼容性导致的一些网络变化所致。
我尝试了变通方法:连接器标记中的 address="0.0.0.0",但访问日志仍然只包含 IPv6 地址。
最佳答案
如果您的服务器正在接受来自 IPv6 客户端的连接,那么您有时会获得 IPv6 地址。您是否将 Tomcat 与另一台可能接受 IPv6 连接并通过 IPv4 转发它们的 Web 服务器放在一起?如果是这样,您将需要重新配置 Web 服务器。
您可以尝试将 -Djava.net.preferIPv4Stack=true
添加到应用程序服务器上的 CATALINA_OPTS
。
2015-09-03 更新
即使您在服务器上完全禁用 IPv6,您也可能在访问日志中获取 IPv6 地址还有其他原因。例如,如果您在 Tomcat 前面有一个反向代理,它可能会发送一个 X-Forwarded-For
header ,其中包含一个 IPv6 地址。假设您“正确”配置了 Tomcat,Tomcat 会将真实 客户端的 IP 地址(以 IPv6 形式)记录到您的访问日志中,而不是使用反向代理的 IP 地址到您的日志中(这将是无用的) ,因为看起来所有请求都来自反向代理)。
因此,如果您的软件由于某种原因无法处理 IPv6,您确实需要修复该软件,因为您确实无法躲避 IPv6。
关于tomcat - Apache Tomcat IPv6 在没有任何 server.xml 更改的情况下是否兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16929122/