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