nginx获取请求的ip,并对指定ip的请求进行转发

$remote_addr 是nginx的自带变量,代表客户端的ip。

但是$remote_addr未必就一定是客户端的真实ip,如果你的客户端经过代理再到达nginx,那么nginx的$remote_addr就是代理的ip。

如果这种情况也想要获取客户端的真实ip,nginx也是有提供相应的功能的,默认是不开启的,需要编译的时候添加--with-http_realip_module 这个模块,这个功能我个人还没用过。

下图是nginx对所有请求都获取客户端ip然后判断是否是172.31.241.93,如true就把当前请求转发到172.31.241.92。

nginx获取请求的ip,并对指定ip的请求进行转发