2014-12-06 45 views
0

我已經嘗試了很多方法將REMOTE_ADDR(顯示我的服務器IP)設置爲HTTP_X_REAL_IP(顯示訪問者的IP)。如何將REMOTE_ADDR設置爲HTTP_X_REAL_IP?

我在Apache + NGINX + Varnish上使用cPanel。

REMOTE_ADDR的最佳方法是使用NGINX + Varnish實際訪問者的IP嗎?

謝謝!

回答

0

不知道按照什麼順序,你有不同的層,假設互聯網 - > NGINX - >光油 - > Apache?

但是在每一層中,你都必須明確地轉發client-ip,以確保你能夠將它傳送到apache層。 注意,我將使用標準的X - 轉發,對於頭代替HTTP_X_REAL_IP

對於Nginx的

set_real_ip_from 127.0.0.1; 
real_ip_header X-Forwarded-For; 

清漆

sub vcl_recv { 
    # Add a unique header containing the client address  
if (req.http.x-forwarded-for) { 
    set req.http.X-Forwarded-For = req.http.X-Forwarded-For; 
    } else { 
    set req.http.X-Forwarded-For = client.ip; 
    } 
    # [...] 
} 

在Apache日誌文件,然後你可以檢索的X -Forwarded-For頭部(其中包含由nginx接收的原始客戶端ip)使用

%{X-Forwarded-For}i 
相關問題