在nginx的配置文件nginx.conf中配置,加上proxy_set_header X-real-IP $remote_addr。
server {
listen 80;
server_name www.xxx.cn;
#charset koi8-r;
#access_log logs/host-web.access.log main;
gzip on;
#给http头部加上两个变量
#add_header X-Via $server_addr; #显示服务器地址
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host; #携带真实的请求域名
proxy_set_header X-real-IP $remote_addr; #转发给后端的时候,后端都有一个独特的首部叫做X-real-IP,这个存放真正的客户端请求ip
add_header X-Cache $upstream_cache_status; #显示缓存是否命中
location / {
proxy_pass http://server;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
tomcat中server.xml配置将默认的%{h}改为%{X-real-IP}i
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%{X-real-IP}i %l %u %t "%r" %s %b" />