Перенаправление HTTP на HTTPS не работает в AWS ALB - PullRequest
0 голосов
/ 14 марта 2019

Я использую ECS для сайта WordPress и использую Application Load Balancer (ALB) для балансировки нагрузки и разгрузки SSL.ALB использует 2 разных прослушивателя на порте 80 и 443. Правило перенаправления подключено к прослушивателю порта 80:

Redirect tohttps://#{host}:443/#{path}?#{query} 
Status code:HTTP_301

Веб-сервер - nginx с php-fpm и прослушивает порт 80.в nginx не выполняется перенаправление.

Итак, в основном я хочу получить http (user req) -> https (перенаправление ALB) -> http (nginx)

Теперь проблема в том, чтоALB не перенаправляет трафик http для главной домашней страницы, например

http://example.com -> http://example.com (без перенаправления) -> http://example.com (nginx)

, но работает с тем же доменом, но с другим URL, например:

http://example.com/page -> https://example.com/page (перенаправление ALB) -> http://example.com/page(nginx)

Редактировать: Вот ссылка на правила прослушивателя ALB.

1 Ответ

0 голосов
/ 14 марта 2019

Не уверен, что вы делаете неправильно, но прослушиватель порта 80 может обработать перенаправление на https.

Вы можете обновить прослушиватель порта 80 вручную, или, если вы используете облачную информацию, это будет выглядеть:

Listener80:
  Type: AWS::ElasticLoadBalancingV2::Listener
  Properties:
    DefaultActions:
      - RedirectConfig:
          Port: 443
          Protocol: HTTPS
          StatusCode: HTTP_301
        Type: redirect
    LoadBalancerArn: !Ref ALB
    Port: 80
    Protocol: HTTP

Конфигурация слушателя выглядит следующим образом:

Recirect Listener - Console

...