在server.xml ,在Connector我指定proxyPort为80 。
这是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。