0
我已經嘗試了很多方法將REMOTE_ADDR(顯示我的服務器IP)設置爲HTTP_X_REAL_IP(顯示訪問者的IP)。如何將REMOTE_ADDR設置爲HTTP_X_REAL_IP?
我在Apache + NGINX + Varnish上使用cPanel。
REMOTE_ADDR的最佳方法是使用NGINX + Varnish實際訪問者的IP嗎?
謝謝!
我已經嘗試了很多方法將REMOTE_ADDR(顯示我的服務器IP)設置爲HTTP_X_REAL_IP(顯示訪問者的IP)。如何將REMOTE_ADDR設置爲HTTP_X_REAL_IP?
我在Apache + NGINX + Varnish上使用cPanel。
REMOTE_ADDR的最佳方法是使用NGINX + Varnish實際訪問者的IP嗎?
謝謝!
不知道按照什麼順序,你有不同的層,假設互聯網 - > 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