ip_hash и адреса клиентов

Виктор Вислобоков corochoone на gmail.com
Чт Май 11 05:28:49 UTC 2023


Доброго времени суток, коллеги.

Вопрос такой. Как написано в документации: ip_hash Задаёт для группы метод
балансировки нагрузки, при котором запросы распределяются по серверам на
основе IP-адресов клиентов. В качестве ключа для хэширования используются
первые три октета IPv4-адреса клиента или IPv6-адрес клиента целиком. Метод
гарантирует, что запросы одного и того же клиента будут всегда передаваться
на один и тот же сервер. Если же этот сервер будет считаться недоступным,
то запросы этого клиента будут передаваться на другой сервер. С большой
долей вероятности это также будет один и тот же сервер.

А каким образом определяется IP адрес клиента? Рискну предположить, что из
$remote_addr? Дело в том, что всё больше и больше сайтов используют
предварительную защиту от атак, типа ддос-гард, куратор, касперский и т.д.
Это означает, что  все запросы приходят с одного и того же IP-адреса (или
пула адресов) сервера, осуществляющего защиту. Да, при этом, обычно
выставляется заголовок X-Real-IP содержащий фактический IP, но я не нашёл в
документации упоминаний о том, каким образом можно настроить ip_hash так,
чтобы он брал IP-адрес клиента из какого-либо заголовка.

Кто знает как это сделать?

С уважением, Виктор
----------- следующая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20230511/c00ab7d5/attachment.htm>


Подробная информация о списке рассылки nginx-ru