Я выполняю обратное проксирование с nginx за балансировщиком нагрузки Google Cloud (HTTPS), поэтому я добавляю X-Forwarded-For
заголовок, чтобы серверная часть могла извлечь IP-адрес клиента (браузера).
Сегодня утром я заметил 10.x.x.x
IP в логах, как такое возможно?
Как ваш журнал интерпретирует заголовок, содержащий несколько IP-адресов? Если он берет первый IP-адрес вместо правильного, это вполне может быть адрес, добавленный кем-то вперед прокси вместо вашего обеспечить регресс прокси.
Заголовок и его содержимое задокументированы в GCP. Настройка балансировки нагрузки HTTP (S) статья:
X-Forwarded-For: <unverified IP(s)>, <immediate client IP>, <global forwarding rule external IP>, <proxies running in GCP>
(только запросы)Список IP-адресов, разделенных запятыми, добавленных посредниками, через которые прошел запрос. Если вы используете прокси внутри GCP, которые добавляют данные в
X-Forwarded-For
заголовок, то ваше программное обеспечение должно учитывать существование и количество этих прокси. Только<immediate client IP>
и<global forwarding rule external IP>
записи предоставляются балансировщиком нагрузки. Все остальные записи в списке передаются без проверки.
Просто отрегулируйте ведение журнала соответствующим образом.
Я использую облачный балансировщик нагрузки Google и облачный DNS Google и nginx в качестве обратного прокси. и используя конфигурацию nginx ниже.
set_real_ip_from 10.48.0.0/14;
set_real_ip_from 10.128.0.0/9;
set_real_ip_from 10.114.44.0/22;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
он работает с облачным DNS, но не с облачным DNS Google и маршрутом AWS 53, с которым проблема связана с 1 месяцем. я также использовал real_ip_header CF-Connecting-IP; но все еще не получает IP-адрес клиента, я всегда вижу локальные IP-адреса экземпляров gcp в журналах nginx, есть ли какие-либо проблемы с DNS, дайте мне знать, как решить эту проблему.