一、背景:
配置了nginx后,通過request.remote_addr獲取到的ip是代理ip,非真實ip,那么如何獲取真實ip呢?
二、解決方案
2.1 配置nginx
配置nginx時加入如下配置
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for
2.2 通過X-Forwarded-For欄位獲取真實ip
X-Forwarded-For是用來識別通過HTTP代理或負載均衡方式連接到Web服務器的客戶端最原始的IP地址的HTTP請求頭欄位,
通過如下代碼即可獲得真實ip
headers = request.headers
ip_address = headers['X-Forwarded-For']
2.3 提示
如果你的機器連的是某一公網,那么通過上述方式取得的ip是公網的出口ip,而不是本機ip,
三、結束語
記錄學習之旅,與君共勉,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/298327.html
標籤:其他
