使用Nginx作为反向代理时,Tomcat的日志记录的客户端IP就不在是真实的客户端IP,而是Nginx代理的IP。要解决这个问题可以在Nginx配置一个新的Header,用来存储$remote_add,然后再Tomcat获取记录这个值。
1.nginx nginx.conf中加:
server
{
listen 8001;
server_name www.123.com;
index index.jsp;
root /opt/123.com/;
location ~ \.(action|jsp|do|gif|png|java|jar|jpg|jpeg|js|javascript|swf|css|xap|txt)?$
{
proxy_set_header Host www.123.com:8001;
proxy_pass http://web;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
}
access_log /var/log/web-nginx_8001.log;
}
2.tomcat server.xml中加:
当然你也可以diy日志文件里面的内容,顺序,打印项都可以调整。
<
Valve
className
=
"org.apache.catalina.valves.AccessLogValve"
directory
=
"logs"
prefix
=
"localhost_access_log."
suffix
=
".txt"
pattern
=
"%{X-FORWARDED-FOR}i %l %u %t %r %s %b %D %q %{User-Agent}i %T"
resolveHosts
=
"false"
/
>
3、日志结果
[root@localhost ~]# tail -f /opt/tomcat/logs/localhost_access.log
-------------------------------------------------------------------------------------------------------------------
114.249.197.149 - - [04/Jun/2013:21:29:41 +0800] GET /index.jsp HTTP/1.0 302 - 45 Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.5 Safari/537.31 0.045
114.249.197.149 - - [04/Jun/2013:21:29:47 +0800] GET /login.action HTTP/1.0 200 5054 5572 Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.5 Safari/537.31 5.572
114.249.197.149 - - [04/Jun/2013:21:29:47 +0800] GET /p_w_picpaths/login/spacer.gif HTTP/1.0 200 43 1 Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.5 Safari/537.31 0.001
114.249.197.149 - - [04/Jun/2013:21:29:47 +0800] GET /p_w_picpaths/login/login_r1_c1.jpg HTTP/1.0 200 23667 1 Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.5 Safari/537.31 0.001
114.249.197.149 - - [04/Jun/2013:21:29:47 +0800] GET /p_w_picpaths/login/login_r1_c3.jpg HTTP/1.0 200 29366 2 Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.5 Safari/537.31 0.002