Получение X-Forwarded за AWS TCP Load Balancer для https

У меня есть балансировщик нагрузки TCP AWS в пуле автоматического масштабирования. За ним стоят несколько доменов, поэтому я не могу завершить SSL на балансировщике нагрузки, следовательно, TCP.

Я обновляю свой формат регистрации, чтобы регистрировать X-Forwarded-For, и это хорошо работает для HTTP, но не для HTTPS.

Форумы не указывают, что это не может быть сделано, поскольку они говорят о HTTP (S), однако я не могу заставить его работать. Это может работать?

Вот мои данные регистрации:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy
SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded
LogFormat "%h %l %u %t \"%r\" %>s %b" common

CustomLog "logs/access_log" combined env=!forwarded
CustomLog "logs/access_log" proxy env=forwarded

Сброс всех атрибутов в PHP Я вижу заголовок для HTTP-запросов, но не HTTPS, поэтому я не думаю, что это проблема конфигурации.

2 ответа

Решение

Хотя я очень сомневаюсь, что можно заставить работать X-Forwarded-For, когда на балансировщике нагрузки не выполняется SSL-завершение, я не нашел окончательного "нет". Однако есть решение, которое я сделал, используя CloudFront.

Поскольку у вас может быть несколько распределений, указывающих на один балансировщик нагрузки, и AWS предоставляет сертификаты для SSL, вы можете прекратить SSL в пограничном местоположении. CloudFront добавит заголовок и перенаправит запрос (при необходимости) на балансировщик нагрузки. Оттуда заголовок достигнет вашего сервера.

ELB не может добавить этот заголовок, так как этот заголовок является функцией HTTP, а это балансировщик нагрузки TCP. Все, что он знает, это то, что он пропускает некоторый поток TCP и не более. Если вам нужен ELB для добавления этого заголовка, вам нужно завершить HTTPS на балансировщике нагрузки. Оттуда он может связываться с вашими серверными экземплярами через HTTP или HTTPS по мере необходимости.

Другие вопросы по тегам