【问题标题】:Tomcat log format disable the IPv6 formatTomcat 日志格式禁用 IPv6 格式
【发布时间】:2010-10-26 02:41:51
【问题描述】:

以下是三个日志示例:

127.0.0.1 - - [17/Sep/2010:14:03:07 +0800] "GET /docs/logging.html HTTP/1.1" 200 24040 "http://localhost:8000/docs/manager-howto.html " "Mozilla/4.0 (兼容;MSIE 6.0;Windows NT 5.1;SV1;.NET CLR 2.0.50727)" 0:0:0:0:0:0:0:1 - - [26/Oct/2010:09:53:30 +0800] "GET /docs/images/tomcat.gif HTTP/1.1" 200 1934 "http ://localhost:8000/docs/" "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8" 0:0:0:0:0:0:0:1 - - [26/Oct/2010:09:53:30 +0800] “GET /docs/images/asf-logo.gif HTTP/1.1”200 7279 "http://localhost:8000/docs/" "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8"

第一个是正确的。但是第二个和第三个的IP都是IPv6格式的,如何避免呢?

【问题讨论】:

  • 为什么要禁用它?它准确地反映了与 Tomcat 服务器的连接是如何启动的。如果您有一些解释日志的工具,则应更新该工具以考虑 IPv6,或者您应该在允许该工具读取日志之前对日志进行一些翻译(例如,查找所有出现的 0:0:0:0:0:0:0:1,并且替换为等效的 IPv4,127.0.0.1。但是,如果任何其他主机连接(非本地主机),您将无法进行此转换。
  • 我可以翻译一下吗?从 ipv6 到 ipv4?
  • 在我看来,您基本上有 4 个选项:(1) 不要监听 IPv6 端口(在启动时告诉 Java 只使用 IPv4),(2) 指示您的浏览器(看起来像 Firefox ) 禁用 IPv6,(3) 调整解释日志的方式以考虑 IPv6,或 (4) 在解释日志之前将日志中的所有 IPv6 地址转换为其 IPv4 等效地址。需要注意的是 (4) 仅适用于简单的 IPv6 地址,例如 ::1。
  • 但是如果我在tomcat中禁用了ipv6地址,那么使用ipv6的客户端就不会记录在日志文件中了,不是吗?
  • 你不能同时拥有它。如果您希望人们能够使用 IPv6 连接,您将必须能够使用 IPv6 格式的日志条目。如果是这种情况,您必须更新您的工具以了解 IPv6 地址。

标签: tomcat logging


【解决方案1】:

我在我的 Tomcat 6.0.20 上观察到,当我以localhost:8080 访问它时,IPv6 地址显示为,而当我使用 IP 地址或服务器名称。

任何访问该 URL 的远程用户也将显示 ipv4 表示法。

通过 IP 地址或域名:

172.x.x.x - - [26/Oct/2010:11:19:50 +0530] "GET /examples/servlets/servlet/RequestParamExample HTTP/1.1" 200 665

通过本地主机:

0:0:0:0:0:0:0:1 - - [26/Oct/2010:11:20:54 +0530] "GET /examples/servlets/servlet/HelloWorldExample HTTP/1.1" 200 359

它对你有用吗?

【讨论】:

  • 感谢您的回复。我总是使用 localhost:port 访问该站点,直到昨天我才发现这个问题。但是我没有对tomcat和我的浏览器进行任何更改。
猜你喜欢
  • 2011-04-07
  • 2019-03-31
  • 2011-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-18
相关资源
最近更新 更多