1. 程式人生 > >Nginx限制IP訪問及獲取客戶端realip實戰

Nginx限制IP訪問及獲取客戶端realip實戰

org 編譯安裝nginx .org 編譯安裝 rem blog 標簽 技術 code

做網站時經常會用到remote_addrx_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實戰