我在 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 地址传递给服务器?