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


関連記事

Go言語

Go言語で使えるORMライブラリ

1 はじめに2 ORMライブラリ2.1 GORM2.2 SQLBoiler3 GORMを使ってみる3.1 導入3.2 migration3.3 insert3.4 select3.5 update3. ...

laravel logo

Laravelの基礎知識

1 はじめに2 Laravelの概要2.1 学習コストが低い2.2 Symfonyがベース2.3 DIを積極的に活用している3 ディレクトリ構成3.1 app3.2 bootstrap3.3 conf ...

laravel logo

Laravel Admin でCSVインポートを実装する

1 はじめに2 下準備2.1 Laravel Adminの導入2.2 Laravel Excelの導入3 Laravel Excelの実装3.1 Importクラスの作成3.2 モデルのfillabl ...

laravel logo

DeployerでLaravelをデプロイ! 初期設定〜レシピのカスタマイズまで

1 はじめに2 Deployerの導入2.1 前提条件2.2 インストール3 デプロイの設定3.1 デプロイスクリプト3.2 サーバサイドの設定3.3 デプロイコマンド3.4 Deployerのディレ ...

rails

Active Strageを使用してユーザーのアバターを登録、表示する

1 はじめに1.1 環境2 セットアップ2.1 前準備2.2 マイグレーションファイル作成2.3 設定ファイル3 実際に使って見る3.1 モデル3.2 コントローラー3.3 ビュー4 個人的メモ4.1 ...

フォロー

follow us in feedly

blog-page_side_responsive

2017年10月
1234567
891011121314
15161718192021
22232425262728
293031 

アプリ情報

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