在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" />