Nginx限制IP訪問及獲取客戶端realip實戰
阿新 • • 發佈:2017-05-28
org 編譯安裝nginx .org 編譯安裝 rem blog 標簽 技術 code
做網站時經常會用到remote_addr
和x_forwarded_for
這兩個頭信息來獲取客戶端的IP,然而當有反向代理或者CDN的情況下,這兩個值就不夠準確了,需要調整一些配置。Nginx作為web服務器
時需要根據源IP地址(remote_addr)進行某些限制,但是假如前端是負載均衡的話,Nginx獲得的地址永遠是負載均衡的內網地址,雖然可以通過設置x_forwarded_for獲取到真實的源IP地址但
是無法針對這個地址進行一些權限設置,及Nginx獲取到的remote_addr是沒有多大意義的,可以通過nginx的realip模塊,讓它使用x_forwarded_for裏的值。使用這個模塊需要重新編譯Nginx,
增加--with-http_realip_module
參數
1,編譯安裝Nginx
不詳述安裝過程,編譯增加--with-http_realip_module
2,修改配置文件
在http標簽添加兩行,其中IP地址代表負載均衡器的IP地址
3,查看日誌
remote_addr和http_x_forwared_for一樣了
4,設置某個頁面的訪問權限
其中admincp.php頁面為後臺管理員頁面,只有通過撥號到對應的IP地址那臺主機才允許訪問
否則跳403錯誤
Nginx限制IP訪問及獲取客戶端realip實戰