IP Lookup подтягивает X-Forwarded-For от CDN

Привет, сообщество Discourse!

Правильно ли я понимаю, что IP Lookup получает последний IP-адрес из заголовка X-Forwarded-For? Похоже, что Cloudfront добавляет свой IP в конец.

Как нам изменить nginx, чтобы убрать последний IP-адрес из заголовка X-Forwarded-For? Мы хотели бы получать IP-адрес клиента для предотвращения спамеров.

Мог бы кто-нибудь, пожалуйста, помочь или дать рекомендации?

С уважением

Просто хотел уточнить, есть ли у кого-то ещё обходной путь для чего-то подобного?

Привет, ты проверил это?

Посмотрите на Run other websites on the same machine as Discourse

Я только что столкнулся с этой проблемой в Cloudflare, когда включил их прокси.

Я исправил это, изменив конфигурацию Nginx. Вам нужно найти все IP-адреса прокси и для каждого из них в секции http добавить:

set_real_ip_from 173.245.48.0/20;
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
...

Затем вы можете установить реальный IP из заголовка, передаваемого Cloudflare:

real_ip_header CF-Connecting-IP;

Поскольку IP-адреса прокси могут меняться, мне нужно автоматизировать процесс их получения и обновления.

Затем перезагрузите или перезапустите nginx командой:

sv nginx reload или sv nginx restart

Ах, как жаль, что я не увидел этот пост раньше! Сегодня я потратил час на воссоздание того, что уже существовало: Тег прокси X-Forwarded-For не распознаётся Discourse?:

Я бы рекомендовал вам переключиться на встроенное решение, так как оно автоматически обновляет список IP-адресов от Cloudflare при пересборке сайта!

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

Кажется, это не меняется очень часто: https://community.cloudflare.com/t/how-often-do-cloudflare-ips-change/9802/7

2 года — это на самом деле чаще, чем я предполагал.

Однако проверка настолько проста, что выполнять её раз в день не составляет труда. Надеюсь, они обновят список за несколько дней до того, как новые диапазоны IP-адресов станут активными.