2014-12-06 18 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 
相关问题