У нас есть балансировщик нагрузки aws. Балансировщик нагрузки использует TCP-соединения 443 для шифрования данных.
Поскольку балансировщик нагрузки шифрует IP-адрес клиента, в нашем файле журнала apache мы можем видеть только IP-адрес балансировщика нагрузки, а не клиента. Хотя мы использовали% {X-Forwarded-For} i в нашем формате журнала.
Есть ли способ решить эту проблему?
Да, ELB поддерживают расшифровку SSL-запроса и отправив простой HTTP-запрос обратно на ваши внутренние серверы Apache.
ELB добавит оба X-Forwarded-For
и X-Forwarded-Proto
заголовки, чтобы вы могли отличить SSL-запросы от простых HTTP-запросов. Запросы без SSL могут иметь только X-Forwarded-For
заголовок или может иметь X-Forwarded-Proto
заголовок установлен на http
.
Если ваш Apache получает запросы на порт 443, ELB не может вводить какие-либо заголовки, и ваши журналы будут содержать только IP-адрес самого балансировщика нагрузки. Вы должны выполнить завершение SSL в ELB, чтобы получить X-Forwarded-For
заголовок.
Есть достойный учебник здесь. Также есть ответ конкретно для Thawte здесь.
тебе нужно mod_rpaf для Apache. Он поместит упакованный IP-адрес X-FORWARDED-FOR вместо IP-адреса балансировщиков нагрузки.