AWS: классический балансировщик нагрузки www.example.com, не перенаправляющий на https://www.example.com - PullRequest
0 голосов
/ 01 июля 2019

У меня есть экземпляр EC2 на AWS, в котором размещена зона route53. Я использовал AWS Certificate Manager для SSL, а затем использовал Classic Load Balancer для того же самого для достижения перенаправления https.

У меня простой веб-сайт, работающий наэтот экземпляр и сервер Apache установлен с ним.Также я сделал .htaccess файл для перенаправления.

Он работает в следующих случаях:

1] example.com -> https://www.example.com
2] https://www.example.com -> https://www.example.com
3] http://www.example.com -> https://www.example.com

Он также должен работать в следующем случае, но это не

www.example.com -> https://www.example.com

Я полностью написал все правило htaccess, но когда я добавляю правило перенаправления www, статус балансировщика нагрузки переходит в состояние OutService. Когда я удаляю это правило, оно отлично работает.

Работа .htaccess для обычных случаев

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

Когда я добавляю правило для www.example.com -> https://www.example.com

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]

1 Ответ

2 голосов
/ 01 июля 2019

Вероятно, это потому, что ваша классическая проверка работоспособности ELB настроена на HTTP и она ожидает 200 нормального ответа от сервера, но из-за правил перенаправления она получает 302/301. Одним из решений было бы использовать TCP для проверки работоспособности, он будет проверять только SYN, SYN + ACK, однако, более надежное решение - использовать балансировщик нагрузки приложения, вы можете выбрать свой собственный успех Проверка работоспособности Код состояния (2xx, 3xx) и вам не нужно правило перенаправления на бэкэнд, ALB предоставляет правила перенаправления, которые вы можете использовать для всех вышеперечисленных целей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...