Как фиксировать IP клиента при запросе в FastAPI?

Структура такая: Клиент стучиться на сервис, который запущен через docker-compose.

В docker-compose запрос принимает сервис NGINX он предает на FastAPI:

app:
  expose:
    - 443
  networks:
    -  net-backend
  ...

nginx:
  ports:
    - 80:80
  volumes:
    - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf
  networks:
    -  net-backend
  ...


networks:
  net-backend:
    driver: bridge

./nginx/nginx.conf:

upstream app-server {
    server app:443;
}

server {
     listen 80;
     client_max_body_size 0;

     location / {
        proxy_pass http://app-server;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection upgrade;
        proxy_set_header Host $host;
        real_ip_header X-Forwarded-For;  # Этого нет - просто как пример пробовал передастся ли
    }

}

внутри FastAPI:

from fastapi import Request
class Client():
  def __init__(self, request: Request)
    host_ip = request.client.host
    ...

Соответственно при получение запроса - FastAPI скорее всего получает IP сети docker-compose. Можно ли получить реальный IP клиента?


Ответы (0 шт):