如何配置 nginx 在响应标头中发送用户 IP

如何配置 nginx 在响应标头中发送用户 IP

我在 ubuntu 20.04 服务器上安装了一台 nginx 服务器。我试图获取用户 IP 地址,但 nginx 似乎未配置为传递该地址。查看访问日志 /var/log/nginx/access.log 时 - 我可以看到正确的 IP 地址。

我正在使用下面的基本 Flask 程序测试这个问题:

from flask import Flask,jsonify,request

app = Flask (__name__)
@app.route('/')
def home():
    return jsonify({"request.remote_addr" : request.remote_addr })
if __name__ == "__main__":
    app.run(host='0.0.0.0')

nginx 配置文件减去 SSL 行如下:

server{
     server_name test.testweb.com;
     location / {
         proxy_pass http://unix:/home/flask/test/test.sock;
     }
}

当我使用 flask dev 服务器运行它时,它可以按预期工作。当我在 nginx/gunicorn 上运行它时,我得到一个空 IP 地址字符串。
在 nginx 上需要什么配置才能将用户 IP 地址传递给服务器?

相关内容