有问题的设置如下:
我的网络应用是使用fastapi
实现的,并使用gunicorn
和uvicorn
工作类进行部署的,位于IP地址为{{1 }}(以及其他远程设备,例如VPN集中器等)
nginx
的配置如下:
172.31.x.x
nginx
的配置如下:
location / {
real_ip_header X-Forwarded-For;
real_ip_recursive on;
set_real_ip_from 172.31.x.x/32; # well-known vpn concentrator
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
proxy_pass http://172.31.x.x:5045;
在gunicorn
中使用OPTIONS="--bind 127.0.0.1:5045 --bind 172.31.x.x:5045 --forwarded-allow-ips=127.0.0.1,172.31.x.x --workers 1 --worker-class uvicorn.workers.Uv
icornWorker --log-config config/logging.conf"
对象(名为fastapi
),starlette.requests.Request
打印托管Web应用程序的服务器的接口IP地址(即{{1 }})
request
都在我的代理服务器(我公司的知名防火墙设备)之前打印设备的IP地址。
我想问的是:
request.client.host
HTTP标头以查看中间代理服务?