有没有一种方法可以使用Python后端服务器检索客户端IP地址

时间:2020-01-21 10:06:36

标签: python-3.x gunicorn fastapi starlette uvicorn

有问题的设置如下:

我的网络应用是使用fastapi实现的,并使用gunicornuvicorn工作类进行部署的,位于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地址。

我想问的是:

  1. 是否可以打印整个request.client.host HTTP标头以查看中间代理服务?
  2. 如何检索最终用户的真实客户端IP地址(实质上是覆盖众所周知的白名单IP地址)?

0 个答案:

没有答案