Я пытаюсь получить реальные ip-адреса пользователей, которые заходят на сайт. Для этого я хотел бы добавить настраиваемую авторизацию для службы API. Использование заголовков для обоих случаев кажется хорошей идеей.
Проблема в том, что я не могу получить настраиваемые заголовки в моем приложении flask, которое обслуживается nginx и веб-серверами Gunicorn. Получение заголовков 'remote_addr' возвращает только IP-адрес 127.0.0.1, несмотря на то, что я отправляю сообщения из внешней сети, а не из localhost.
Вот мои файлы конфигурации:
часть nginx config / /1.14.2
location / {
# forward application requests to the gunicorn server
proxy_read_timeout 30s;
proxy_send_timeout 30s;
proxy_connect_timeout 30s;
proxy_pass http://127.0.0.1:5000;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
add_header CLIENT-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
часть конфигурации gunicorn //20.0.4
[program:wapp]
command=/home/deeslo/processor/venv/bin/gunicorn -b localhost:5000 -w 4 microservice:app
directory=/home/deeslo/processor
user=deeslo
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
Когда я проверяю заголовки, я не вижу там ни X-Real-IP / CLIENT -IP from nginx и другие настраиваемые заголовки, которые я отправил в flask, не создают заголовки ответа.
Что я пропустил? Не могу решить пока.