Эта строка необходима для того, чтобы всё работало.
Без неё все запросы всё равно будут иметь IP балансировщика нагрузки.
Я знаю это, потому что мой Discourse был недоступен из-за ошибок 429.
На всякий случай, если это неясно, вот моя инфраструктура:
пользователь > haproxy > discourse
В Discourse, конечно, встроен nginx-прокси.
Я добавил заголовки перенаправления в haproxy, но внутренний nginx в Discourse не учитывал заголовок X-Forwarded-For. Мне пришлось добавить эти две строки в свой первый пост и перезапустить контейнер, чтобы всё заработало.
На мой взгляд, встроенной переменной окружения для IP-адресов пользовательского балансировщика нагрузки нет, так как nginx не читает эти переменные для блока server по умолчанию.
Кроме того, если вы вручную отредактировали конфигурацию nginx внутри работающего контейнера, она будет удалена при следующей пересборке.
По-моему, чтобы сделать изменения постоянными и сохраняющимися после пересборок, нужно использовать команду replace в вашем файле app.yml (или web_only.yml, если используется два контейнера). Прокрутите файл .yml в самый низ до раздела run: и добавьте следующий блок. Это подскажет сборщику Discourse автоматически внедрить ваши настройки реального IP после открытия блока server {:
run:
- replace:
filename: /etc/nginx/conf.d/discourse.conf
from: /server.+{/
to: |
server {
set_real_ip_from 192.168.1.100; ## Замените на ваш реальный IP/подсеть балансировщика нагрузки
real_ip_header X-Forwarded-For;
real_ip_recursive on;