使用阿里雲SLB,無法獲取真實ip問題
官方給出的是如下用法,需要安裝模塊,大體上是沒有錯的,但是比較模糊,實際操作中可能會踩坑,所以參考學習即可,不必照搬。(那個http_realip_module是肯定必須的)
但是由於之前對nginx了解的不是那么的深入,所以對給出的一些參數不懂具體的意義,直接照搬,但是導致nginx無法啟動成功。
后來通過查找其他資料,了解具體參數的功能后,就比較簡單了。一定要理解set_real_ip_from和real_ip_recursive on的實際作用。
詳解
set_real_ip_from 192.168.1.0/24; #真實服務器上一級代理的IP地址或者IP段,可以寫多行。
real_ip_header X-Forwarded-For; #從哪個header頭檢索出所要的IP地址。
real_ip_recursive on; #遞歸的去除所配置中的可信IP。排除set_real_ip_from里面出現的IP。如果出現了未出現這些IP段的IP,那么這個IP將被認為是用戶的IP。
下圖是我添加后的location,查看日志,已經獲取到了真實的ip。