Похоже, мой Amazon Elastic Load Balancer распределяет трафик между EC2, но без их IP-адресов?
Это обычное поведение? Это невероятно раздражает. Т.е. ELB CName находится на моем доменном имени DNS, я попал в домен, и в журнале доступа указан IP-адрес ELB, а не посетителя.
Поскольку ссылка в вашем комментарии не работает, вот как регистрировать IP-адреса посетителей:
В httpd.conf создайте новый формат журнала:
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined-elb
Затем использовать:
CustomLog logs/access_log combined-elb
Это так просто.
Если вы используете ELB в режиме HTTP, он добавляет несколько заголовков HTTP на запрос, отправленный экземплярам EC2, среди которых X-Forwarded-For
заголовок, который будет содержать IP-адрес клиента.
X-Forwarded-For: 203.0.113.7
Обратите внимание, что этот заголовок потенциально может содержать более одного IP-адреса, если другие балансировщики нагрузки или прокси-серверы обрабатывали запрос. В этом случае вы хотите извлечь первый указанный IP-адрес.
X-Forwarded-For: 203.0.113.7, 10.12.33.44, 10.73.23.88