Lightsail インスタンスの前にロードバランサーを配置した場合にリダイレクトループを回避する方法を教えてください。

所要時間2分
0

Amazon Lightsail WordPress インスタンスの前に Elastic Load Balancing (ELB) Application Load Balancer または Amazon Lightsail ロードバランサーを配置すると、リダイレクトループが発生します。

簡単な説明

シナリオ例

Bitnami HTTPS 設定ツール bncert を使用して、Lightsail WordPress インスタンスのリダイレクトを設定しました。このインスタンスでは、HTTP から HTTPS に、非 www ドメインから www ドメインにリダイレクトします。次の例に示すように、ドメイン名 (example.com と www.example.com) が Lightsail インスタンスの IP アドレスを指すように DNS を設定しました。

http://example.com > Lightsail インスタンス > https://example.com > Lightsail インスタンス > 200 OK

このインスタンスの前に Application Load Balancer を設定し、ドメインが Application Load Balancer を指すようにしました。この設定では、Lightsail インスタンスが常に HTTP ポート 80 でリクエストを受け取って https://example.com にリダイレクトするため、リダイレクトループが発生します。

example.com > http://xyz.ap-south-1.elb.amazonaws.com > http://your_lightsail_IP_address > https://example.com > https://xyz.ap-south-1.elb.amazonaws.com > http://your_lightsail_IP_address

解決策

Lightsail ロードバランサー

リダイレクトループを回避するために、インスタンスでは非 www から www へのリダイレクトのみを使用してください。HTTP から HTTPS へのリダイレクトは、Lightsail ロードバランサーで実行します。

手順 1: bncert を再設定する

1.bncert ツールを使用するには、次のコマンドを実行します。

sudo /opt/bitnami/bncert-tool

2.Enter your primary domain name and alternate domain name に対して、既に Lightsail インスタンスを指しているドメインを入力します。また、このドメインの www サブドメインも入力します。

3.Enable HTTP to HTTPS redirection に対して、N を選択します。これにより、HTTP から HTTPS へのリダイレクトが無効になります。

4.Enable non-www to www redirection に対して、Y を選択します。

5.Enable www to non-www redirection に対して、N を選択します。

6.変更内容を確認し、Y を入力して、Enter キーを押します。

詳細については、Amazon Lightsail ドキュメントの「手順 5: Turn on HTTPS on your WordPress instance」を参照してください。

手順 2:HTTP から HTTPS へのリダイレクトを使用する Lightsail ロードバランサーを作成する

1.Lightsail ロードバランサーを作成し、インスタンスをアタッチします。

2.example.com および www.example.com 用の SSL/TLS 証明書を作成します。ドメイン名とサブドメイン名は、自分のドメインとサブドメインの名前に置き換えてください。

3.TLS リスナーを有効にするには、SSL/TLS 証明書を Lightsail ロードバランサーにアタッチします。

4.Lightsail ロードバランサーの [プロトコル] セクションで、方向オプションを切り替えて HTTP から HTTPS へのリダイレクトを有効にします

これで、Lightsail ロードバランサーの DNS 名がロードバランサーの www サブドメインにリダイレクトされるようになりました。

手順 3: DNS を更新する

DNS 設定で、example.com と www.example.com が Lightsail ロードバランサーの DNS 名を指すようにします。

Application Load Balancer

Lightsail インスタンスの前にある Application Load Balancer については、HTTP から HTTPS へのリダイレクトは Lightsail インスタンスでのみ保持します。

1.    Amazon Elastic Compute Cloud (Amazon EC2) コンソールを開きます。

2.[負荷分散][ターゲットグループ] を選択します。

  1. [ターゲットグループの作成] を選択します。

4.ポート 80 と 443 のターゲットグループを作成し、それらに tg-80 および tg-443 という名前を付けます。

5.[ターゲットタイプ][IP] を選択します。

6.[ターゲットの登録][ネットワーク] で、[その他のプライベート IP] を選択し、Lightsail インスタンスの IP アドレスを指定します。

7.Application Load Balancer を作成します。ポート 80 でターゲットグループ tg-80 へのルートリスナーを作成し、ポート 443 でターゲットグループ tg-443 へのリスナーを作成します。

8.example.com と www.example.com の DNS レコードを更新して、Application Load Balancer の DNS 名を指すようにします。

この設定を使用すると、Application Load Balancer は HTTPS リクエストを HTTPS で Amazon Lightsail に転送します。そのため、200 OK というレスポンスを受信します。

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ