Обратный прокси X-Forwarded-For

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

В обратном прокси-сервере я добавил заголовки Forward Proto и For, но конфигурация nginx в Discourse учитывала только Proto.

Мне пришлось добавить в секцию server следующее:

set_real_ip_from loadbalancerip;
real_ip_header X-Forwarded-For;

Существует ли переменная окружения Discourse для добавления этих настроек?
Или, возможно, есть аргумент для добавления в app.yml?

Я думаю, это то, что вы ищете:

Нет, это руководство объясняет, как настроить сокет nginx, общий между контейнером и хостом.

Я пытаюсь найти декларативный способ включить:

set_real_ip_from loadbalancerip;
real_ip_header X-Forwarded-For;

в конфигурацию nginx в контейнерах после пересборки.

Вы пытаетесь добавить это во внутренний nginx контейнера? Я полагаю, что это излишне, так как оно добавляется по умолчанию:

Эта строка необходима для того, чтобы всё работало.
Без неё все запросы всё равно будут иметь IP балансировщика нагрузки.
Я знаю это, потому что мой Discourse был недоступен из-за ошибок 429.

На всякий случай, если это неясно, вот моя инфраструктура:
пользователь > haproxy > discourse

В Discourse, конечно, встроен nginx-прокси.

Я добавил заголовки перенаправления в haproxy, но внутренний nginx в Discourse не учитывал заголовок X-Forwarded-For. Мне пришлось добавить эти две строки в свой первый пост и перезапустить контейнер, чтобы всё заработало.