У меня несколько серверов приложений, работающих как экземпляры EC2. Только определенным «голым» серверам, работающим в другом месте, разрешено связываться с ними, и их IP-адреса явно занесены в белый список серверов приложений httpd.conf @the.
Я хочу переместить серверы приложений за ELB для балансировки нагрузки, теперь я прочитал о заголовке X-Forwarded-For, который будет перенаправлен на сервер приложений из ELB, и на его основе можно разрешить определенные IP-адреса. У меня вопрос, как мне это настроить?
В настоящее время моя конфигурация apache на сервере приложений выглядит так:
<VirtualHost *:80>
ServerAdmin abc@foo.com
ServerName bar.foo.in
DocumentRoot /home/foo/bar
<Directory /home/foo/bar>
Options Indexes Multiviews FollowSymLinks
AllowOverride All
Order Deny,Allow
Deny from all
Allow from X.X.X.X Y.Y.Y.Y Z.Z.Z.Z A.A.A.A
</Directory>
Я думаю об использовании директивы SetEnvIf, чтобы разрешить IP-адреса на основе значения X-Forwarded-For, но я не уверен в этом. Имею в виду следующие изменения. Может ли кто-нибудь проверить это, прежде чем я запустил это в производство?
<VirtualHost *:80>
...................
....................
<Directory /home/foo/bar>
SetEnvIF X-Forwarded-For "X.X.X.X|Y.Y.Y.Y|A.A.A.A" AllowIP
Options Indexes Multiviews FollowSymLinks
AllowOverride All
Order Deny,Allow
Deny from all
Allow from env=AllowIP
</Directory>
Спасибо
Лучший способ сделать это - пропустить всю работу по настройке Apache и использовать AWS VPC для ограничения. Вы можете использовать группу безопасности ELB, чтобы ограничить входящие запросы только этими IP-адресами. После этого установите группу безопасности экземпляров EC2 так, чтобы она принимала HTTP-соединения только от ELB.
Это дает вам то, что вы ищете, без особых хлопот с конфигурацией Apache, а также проще и быстрее управлять, если вам когда-либо понадобится что-то изменить.