2015-06-20 1 views
0

Я использую AWS для запуска моего приложения на основе стека MEAN. Я использую балансировку нагрузки с тремя экземплярами серверов приложений Node и тремя экземплярами сервера базы данных mongo на кластере. Следующее - мое требование. 1. Использование балансировки нагрузки для поддержки только по протоколу HTTPS 2. Узел должен запустить сервер HTTP только 3. компенсатор нагрузки будет перенаправлять HTTPS и HTTP как запрос на Apache, который будет перенаправлять на узелAWS Load balancer поддерживает только HTTPS и автоматическое перенаправление на HTTPS для пользователя, пытающегося получить доступ к HTTP

Я попытался AWS и создал компенсатор нагрузки , HTTPS работает только тогда, когда я сохраняю перенаправление портов 80 (HTTP) и 443 (HTTPS) до порта 80 (HTTP) узла Apache. Поэтому на данный момент я сохранил оба перенаправления портов на балансировщик нагрузки.

Кроме того, я определил входящий трафик 80 и 443 как группу безопасности.

Как я могу убедиться, что даже если пользователь вводит URL-адрес HTTP или HTTPS в браузере, мой балансировщик нагрузки всегда должен поддерживать HTTPS-сервер, и пользователь должен получить доступ только к HTTPS? Ниже приведена схема архитектуры для справки.

Прошу совета.

ответ

0

На балансировщике нагрузки направьте порт 80 слушателя на порт 8080 на экземпляр.

В Apache, перепишем порт 8080 порт 443.

т.д .:

<VirtualHost *:8080> 
RewriteEngine on 
RewriteCond %{SERVER_PORT} !^443$ 
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L] 
</VirtualHost> 

RewriteCond может быть redundent ...

Смежные вопросы