LINUX.ORG.RU
решено ФорумAdmin

Откуда IPv6 адреса в X-Forwarded-For nginx'а?

 , , ,


0

0

На ubuntu сервере без IPv6 адреса с выключенным IPv6 в ядре, в логах в $http_x_forwarded_for оказывается только один IPv6 адрес, причём в $remote_addr нормальный IPv4 адрес, хотя в $http_x_forwarded_for должен быть либо IPv4, либо через запятую IPv6,$remote_addr. Хедер добавляется так:

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
nginx/1.13.0

$proxy_add_x_forwarded_for поле заголовка запроса клиента “X-Forwarded-For” и добавленная к нему через запятую переменная $remote_addr. Если же поля “X-Forwarded-For” в заголовке запроса клиента нет, то переменная $proxy_add_x_forwarded_for равна переменной $remote_addr.

Не понимаю, как такое вообще возможно.

А если сам клиент за каким-то хреном шлет заголовок X-Forwarded-For, заменит ли его nginx?

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

Нет, в этом-то и дело. Есть клиенты за проксёй ipv6, у них идёт ipv6,ipv4. То есть ipv4 должен быть обязательно, и он должен быть последним.

alestro ()
Ответ на: комментарий от Pinkbyte

То есть он его не заменит, а через запятую добавит ipv4 клиента.

По крайней мере так должно быть.

alestro ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.