Как фиксировать 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 клиента?