BackEnd

ALB+EC2な環境でhttpをhttpsにリダイレクトする

投稿日:

はじめに

httpsに対応済みのWebサイトの場合、httpでアクセスされた時にhttpsでリダイレクトすることがあるとお思います。
今回は、ALB+EC2な環境でhttpでアクセスされた場合にhttpsでリダイレクトする方法を紹介します。

前提条件

Nginx 1.12.1

ALBの設定

ALBではhttpsとhttpの両方のリスナーを設定します(どちらもALB→EC2間はhttpで通信します)

リスナーの設定は下記の通りです。

alb_listener

 

ヘルスチェックの設定は下記の通りです。

 

Nginxの設定

下記はEC2上でRailsアプリケーションを動作させる場合のnginx.confの例です。

httpでアクセスされた場合にhttpsにrewriteしているのは70〜76行目です。

$http_x_forwarded_protoを使うとクライアントがロードバランサーへの接続に使用したプロトコルを識別できます。
$http_x_forwarded_protoがhttpsではなかった時にhttpsでリダイレクトします。

注意点

注意点はリダイレクトの設定をserverディレクティブに書くのではなく、locationディレクティブに書く点です。

serverディレクティブに書いてしまうとヘルスチェックのための/healthcheck.htmlもリダイレクトしてしまうためヘルスチェックに失敗するようになってしまいます。

さいごに

先日AWS上に環境構築を行いましたが、Linuxやミドルウェアに関する知識不足を再認識しました。aws

サービスの開発を行いつつ、これらの知識を深めていこうと思います。

blog-page_footer_336




blog-page_footer_336




-BackEnd
-

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

laravel logo

LaravelでのCookieファサード利用

1 はじめに2 基本メソッド2.1 付与2.2 取得2.3 削除3 他メソッド3.1 forever3.2 getQueuedCookies3.3 unqueue4 ミドルウェア4.1 AddQueu ...

Pythonのポリモーフィズム、ABCにするか? プロトコルにするか?

1 はじめに2 ズバリ、ABCとProtocolは何が違うか?3 それぞれの使い勝手をおさらい3.1 ABC3.2 Protocol3.2.1 実装クラスからの継承4 どっちを使うか?5 さいごに6 ...

aws

Amazon API Gatewayざっくり概要

1 はじめに2 Amazon API Gatewayとは?2.1 なにができる?2.2 作成できるAPIの種類2.3 REST APIとHTTP APIの違い3 Amazon API Gatewayの ...

icon

PHP、Ruby、Pythonのfor構文を比較してみた

1 はじめに1.1 環境2 ドキュメント2.1 PHP2.2 Ruby2.3 Python3 1から100まで出力してみる3.1 PHP3.2 Ruby3.3 Python4 リスト型(配列)の出力4 ...

laravel logo

Laravelでメールを送る

1 はじめに1.1 準備2 実装2.1 Mailableクラスの作成2.2 テンプレートの作成2.3 Mailableクラスの修正2.4 コントローラの作成2.5 コンフィグの修正3 さいごに4 おす ...

フォロー

blog-page_side_responsive

2017年10月
1234567
891011121314
15161718192021
22232425262728
293031  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。