我尝试过很多方法将REMOTE_ADDR(显示我的服务器IP)设置为HTTP_X_REAL_IP(显示访问者的IP)。
我正在使用带有Apache + NGINX + Varnish的cPanel。
REMOTE_ADDR使用NGINX + Varnish获取实际访客IP的最佳方法是什么?
谢谢!
答案 0 :(得分:0)
不确定您拥有不同图层的顺序,假设互联网 - > NGINX - >清漆 - >阿帕奇?
但是在每一层中你必须明确转发client-ip以确保你将它放到apache层。 请注意,我将使用标准化的X-Forwarded-For标头而不是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