某些用戶可能會使用透明代理訪問你的網站,透明代理在轉發請求的時候會經過X-Forwarded-For請求頭帶上真實的請求IP地址,默認狀況下,Play會解析這個請求頭並賦值給request.remoteAddress,進而致使在Action中經過request.remoteAddress獲取到的IP地址是一個內網地址,例如192.168.1.2。這些內網地址對地域統計來講沒有任何意義,因此索性就關閉X-Forwarded-For解析,直接獲取代理服務器地址。nginx
很簡單,只須要在application.conf配置文件中增長一行配置便可關閉全部X-Forwarded-For解析.服務器
play.http.forwarded.trustedProxies = []
若是使用Nginx作反向代理服務器,修改/etc/nginx/nginx.conf,告訴Nginx添加相應的請求頭:app
http { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_http_version 1.1; }
play.http.forwarded.trustedProxies=["::1", "127.0.0.1"]
play.http.forwarded.trustedProxies=["192.168.0.0/24", "::1", "127.0.0.1"]
192.168.0.0/24表示整個C類地址段,即192.168.0.0-192.168.0.255。網站
play.http.forwarded.trustedProxies=["0.0.0.0/0", "::/0"]