Рейтинг:0

как настроить nginx для отправки IP-адреса пользователя в заголовках ответов

флаг br

У меня есть сервер nginx, который я установил на сервере Ubuntu 20.04. Я пытаюсь получить IP-адрес пользователя, но nginx, похоже, не настроен для его передачи. при просмотре журналов доступа /var/log/nginx/access.log - я вижу правильный IP-адрес.

Я тестирую эту проблему с помощью базовой программы фляги ниже:

из фляги импортировать флягу, jsonify, запрос

приложение = Фляга (__имя__)
@app.route('/')
защита дома():
    return jsonify({"request.remote_addr" : request.remote_addr})
если __name__ == "__main__":
    app.run(хост='0.0.0.0')

Файл конфигурации nginx без строк SSL для этого:

сервер {
     имя_сервера test.testweb.com;
     место расположения / {
         proxy_pass http://unix:/home/flask/test/test.sock;
     }
}

когда я запускаю это с сервером flask dev, он работает так, как ожидалось. когда я запускаю его на nginx/gunicorn, я получаю пустую строку для IP-адреса.
какая конфигурация требуется на nginx для передачи IP-адреса пользователя на сервер?

Ivan Shatsky avatar
флаг gr
Попробуйте `proxy_set_header X-Forwaded-For $proxy_add_x_forwarded_for;`
afshin avatar
флаг br
попробовал - сначала не получилось. изменил ваше предложение на следующее: add_header Access-Control-Allow-Origin *; add_header X-Forwaded-For $proxy_add_x_forwarded_for; это сработало - впервые за последние 2 дня я увидел, что IP-адрес пользователя передается в заголовках. Благодарность

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.