передать адрес из переменной x-forward-for
Если я просто занесу
proxy_set_header X-Real-IP $x_forward_for;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
nginx ругается, что нет такой переменной, хотя в логах она есть
что я не так делаю?
добавить '$http_' патамушта $http_ аксессор к значению заголовков
$http_x_forward_for вы так предлагаете? я пробовал вроде с аксесором, но он ругался Сейчас еще раз попробую
я всего лишь предлагаю как в документации, но, вы в праве не согласиться http://nginx.org/r/$http_/ru
Вы все верно говорите, но сам по себе x_forward_for массив, и как взять первый самый ip адрес из него непонятно(
Отрезать можно map с регуляркой, но, предполагаю что вам лучше настроить real_ip модуль и получать адрес в переменной remote_addr
У меня несколько прокси подряд и настоящий ip адрес клиента теряется и я не очень понимаю, как бы сделать правильно remote_addr если исопльзовать, то используется адрес прокси сервера И я не могу понять, как сделать так, чтобы в X-Real-IP сохранить адрес клиента
на первом nginx смотреть заполнен ли $proxy_add_x_forwarded_for и дальше по каскаду выставлять proxy_set_header X-Forwarded-For $remote_addr; Предварительно настроив https://nginx.org/ru/docs/http/ngx_http_realip_module.html на всём каскаде nginx Или промежуточные прокси могут быть не nginx ?
В моем действии сейчас только последний nginx в цепочке, к нему приходят запросы, как понимаю, в x-forward-for - массив адресов, включая адрес клиента, и адреса прокси серверов Сама переменная remote_addr стоит пустой Вот я пытаюсь понять, как взять первый элемент x-forward-for UPD Точнее, наверное, последний, ведь нужен клиент ,верно?
в kubernetes да, в поде докер крутится
ага, необходимо для сервиса устанавливать параметр доступности, секунду...
у меня контейнеры крутятся в docker swarm и была аналогичная проблема, но решается изменением настройки deploy: service: image: ... deploy: mode: global думаю в кубе аналогичный параметр есть
В x-forwarded-for может быть написано что угодно. Цепляться к первому вхождению можно только в том случае, если вы сами этот заголовок пишите
Спасибо Кстати Переменная proxy_protocol_addr, из которой хотелось бы взять адрес клиента пустая, нужно смотреть предыдущий прокси?
какой именно, $x_forward_for? ну так её "из коробки" действительно нет
Обсуждают сегодня