Nginx Web服务器标准IP解决方案

Nginx Web服务器在使用的时候常常会使服务取ip出现问题,让Nginx Web服务器直接支持x_forwarded_for是其中一种解决方案。那么我们要如何才能使用这样的方案呢?

set $ip $http_x_forwarded_for;  


if ($ip ~ ^$ )  


{  


set $ip $remote_addr;  


}  


proxy_set_header X-Forwarded-For "$ip, $server_addr"; 

用这段代码就可以让Nginx Web服务器支持标准的x_forwarded_for,在某些情况下,可以用:

proxy_set_header X-Forwarded-For "$ip"; 

不把Nginx Web服务器机器的ip地址加进去。

附:x_forwarded_for取ip的正确方式

x_forwarded_for是将请求路过的代理服务器的ip都记录下来的一条字符串,每经过一个代理服务器,x_forwarded_for就会在它的后面加上这个代理服务器的ip地址。常见的:

119.120.112.157, 61.135.253.11

这样就表示请求经过了一个代理服务器61.135.253.11。

119.120.112.157, 61.135.253.11, 192.168.0.13

经过了两个代理服务器61.135.253.11和192.168.0.13。

这样看起来取第一个ip地址就是正确的,不过这比较草率:

相关推荐