xinetd后面的tomcat6 – 真正的客户端ip

server.xml ,在Connector我指定proxyPort80

这是xinetd服务:

 service http { socket_type = stream protocol = tcp user = tomcat6 wait = no bind = 0.0.0.0 port = 80 redirect = 127.0.0.1 8080 disable = no flags = REUSE log_type = FILE /var/log/xinetd_http_access.log log_on_success -= PID HOST DURATION EXIT per_source = UNLIMITED instances = UNLIMITED } 

不过,在Tomcat的访问日志中,我看到如下行:

 127.0.0.1 - - [17/Aug/2012:00:23:23 +0300] "GET / HTTP/1.1" 200 1975 127.0.0.1 - - [17/Aug/2012:00:23:23 +0300] "GET /_static/css/global.css HTTP/1.1" 304 - 

有任何想法吗?

xinetd是否可以传递X-FORWARDED-FOR HTTP标头?

如果tomcat位于通过X-FORWARDED-FOR的反向代理(例如nginx)之后,即:

 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

然后你可以在你的tomcat server.xml中设置AccessLogValve:

 pattern="%{X-Forwarded-For}i %l %u %t %r %s %b %{User-Agent}i %{Referer}i" 

您将在访问日志中获取客户端的始发IP地址。

干杯

不,没有什么可以做的。 你不能用xinetd做到这一点。 它似乎为我工作,但后来我意识到,日志中的大部分IP地址仍然是127.0.0.1。

我终于设法让Tomcat作为(大部分)受限的用户使用jsvc和–user选项运行。 这也可能与iptables。