Java經過ProxyPass獲取正確客戶端真實IP方法

通常做好AP Server後,會有一台Web Server做Proxypass代理減少附載平衡

但是通常經過一層之後,request header也就會有改變,

造成AP得到的getRemoteAddr都是Web Server的ip

所以Java攔截器層可以增加以下方式來記錄真實Client IP

Request Header參數說明

  • X-Forwarded-For

這是一個 Squid 開發的字段,只有在通過了HTTP代理或者負載均衡服務器時才會添加該項。

格式為X-Forwarded-For:client1,proxy1,proxy2,一般情況下,第一個ip為客戶端真實ip,後面的為經過的代理服務器ip。現在大部分的代理都會加上這個請求頭。

  • Proxy-Client-IP/WL- Proxy-Client-IP

這個一般是經過apache http服務器的請求才會有,用apache http做代理時一般會加上Proxy-Client-IP請求頭,而WL-Proxy-Client-IP是他的weblogic插件加上的頭。

  • HTTP_CLIENT_IP

有些代理服務器會加上此請求頭。

  • X-Real-IP
    nginx代理一般會加上此請求頭。

Reference

https://www.itread01.com/content/1532062937.html

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *