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

Разрешение нескольких IP-адресов за ELB в конфигурации Apache

У меня несколько серверов приложений, работающих как экземпляры 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, а также проще и быстрее управлять, если вам когда-либо понадобится что-то изменить.