Назад | Перейти на главную страницу

Правильный способ настройки Symfony / Apache за балансировщиком нагрузки

У нас следующая архитектура:

Балансировщик нагрузки -> Apache 2.4 -> Symfony 3.4

Балансировщик нагрузки обрабатывает SSL-соединение (завершение SSL: HTTP используется между балансировщиком нагрузки и Symfony).

У нас есть 2 требования:

  1. Symfony должен генерировать маршруты HTTPS (не HTTP)
  2. Apache должен регистрировать реальный IP-адрес клиента (а не IP-адрес балансировщика нагрузки)

Для выполнения этих требований мы использовали:

  1. setTrustedProxies от Symfony доверять X-FORWARDED-* заголовки, таким образом сгенерированные URL-адреса используют HTTPS.
  2. mod_remoteip из Apache, чтобы иметь возможность использовать %a в файле журнала и зарегистрируйте IP-адрес удаленного клиента.

К сожалению, mod_remoteip заменяет значение из REMOTE_ADDR заголовок со значением из X-FORWARDED-HOST, в результате Symfony не может доверять прокси и генерирует URL-адреса HTTP.

Что бы вы посоветовали разрешить этот конфликт? Следует ли мне удалить mod_remoteip и использовать %{X-Forwarded-For}i в моем файле журнала? это плохая идея?