はじめに
Oracle Cloud Infrastructure(以下 OCI) のロードバランサーに関する記事です。Webサイトを HTTPS で提供するときに、HTTP でアクセスしてきたリクエストを HTTPS にリダイレクトをしたい時があります。リダイレクトすることで、HTTPS を強制出来てセキュリティを向上出来たり、Google などによる検索エンジンの評価を向上しやすくする効果があります。検索エンジンの評価では、HTTP と HTTPS のページは別のページと認識して評価するため、同一のコンテンツが分散されて評価されてしまうようです。そのため、HTTP を HTTPS へリダイレクトすることで、評価を分散させない効果があると言われています。
リダイレクトするときには、Apache や Nginx 側で設定することも出来ますが、多少面倒です。OCI ロードバランサーでリダイレクト設定が簡単に設定できるため、手順を紹介します。
Rule Sets の作成
まず、ロードバランサーの詳細画面で、HTTPS へリダイレクトするための Rule Sets を作成します。
各種パラメータを入れます。Source Path は、アクセスの中から、どのアクセスをリダイレクトの対象にするかの指定です。今回は、全ての HTTP のアクセスを HTTPS へリダイレクトしたいため、/
を入力します。
Close
Rule Sets が作成されています
Listener に Rule Sets を紐づけ
Rule Sets を作成しただけでは、何の効果もありません。Listener に Rule Sets を紐づけることで、はじめてリダイレクトが出来るようになります。というわけで、HTTP(80) Port の Listener に、HTTPS(443) へリダイレクトの Rule Sets を紐づけます。
Additional Rule Set
Redirect_to_HTTPS を確認して、Update を押します。
Close
Work Requests が In Progress のものが表示され、すぐに Succeeded になります。
HTTPS リダイレクトの確認
まず、Linux の curl コマンドで、リダイレクトの挙動を確認します。
> curl -I http://web01.sugioci.tokyo/
HTTP/1.1 301 Moved Permanently
Date: Sat, 28 Nov 2020 11:29:12 GMT
Content-Type: text/html
Content-Length: 173
Connection: keep-alive
Location: https://web01.sugioci.tokyo:443/
http(80) にアクセスしてみると、Status 301 Moved Permanently
が返ってきています。そして、リダイレクト先の Location が https://web01.sugioci.tokyo:443/
となっています。正常に HTTPS へリダイレクトが出来ていますね。
Web ブラウザ上でも、確認してみましょう。http://web01.sugioci.tokyo/ にアクセスしてみると、正常に HTTPS ページが表示されます。
参考URL