使用 nginx lua 获取客户端 IP 地址

我有一个用于 nginx 的 lua 脚本,并希望获取客户端的 IP 地址。

然而

ngx.var.remote_addr 的值为 10.0.2.2

在我的情况下,如果我检查我的 IP 地址,则为 86.123.XXX.XXX

如何使用 nginx lua 获取 86.123.XXX.XXX 地址?

点赞
用户380774
用户380774

看起来你当前的 Nginx 位于反向代理之后。你需要通过反向代理传递用户 IP,类似这样:

    location / {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP  $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_pass http://YOUR_CURRENT_SERVER;
    }

之后,你可以从 X-Real-IPX-Forwarded-For 头文件中获取用户的 IP,或者使用 $http_x_real_ip

2017-02-10 06:26:07