Как настроить редирект non-www to www через AWS ALB
Сегодня в нашей программе я расскажу о том, как можно настроить обычный редирект из example.com на www.example.com. Да, в наше время бывает и такое и порой полезно знать как это можно реализовать через обычный ALB.
Если вы пользуетесь AWS и у вас нет возможности настроить это через nginx
, varnish
, .htaccess
, тогда, данная статья для вас.
Для начала вам понадобится обычный Application Load Balancer (ALB) и рабочая таргет группа. К сожалению через Network Load Balancer (NLB) — этого не сделать.
Я предположу, что у вас уже установлен как ALB так и Tagret Group.
Переходим на вкладку Listeners и добавляем листенер для порта 80. Цепляем 301 редирект на 443 порт и добавляем новое правило с условием
IF example.com then redirect to https://www.#{host}:443/#{path}?#{query}
В конце наш листенер вместе с правилом имею следующий вид
Создаем еще одие листенер, но уже для порта 443 Делаем форвард на нашу таргет группу и создаем правило с тем самым редиректом, что и для порта 80
IF example.com then redirect to https://www.#{host}:443/#{path}?#{query}
В конце наш листенер вместе с правилом имею следующий вид
Если смотреть на листенеры с описания лоад балансера, то все выглядеть будет следующим образом
Вот собственно и все :)