share facebook facebook2 twitter menu hatena pocket slack

2013.06.18 TUE

VarnishでHTTPのアクセス(S3)をHTTPSのアクセス(S3)にリダイレクト

鈴木 宏康

WRITTEN BY鈴木 宏康

以前紹介した下記記事の合わせ技になります。

Varnishでリダイレクト専用Webサーバの構築
Varnish経由でS3のコンテンツをPOSTで取得(Facebookアプリ用)

概要は、このようになります。

設定ファイル(/etc/varnish/default.vcl)は、以下のようになります。


backend default {
.host = "localhost";
.port = "80";
}

sub vcl_recv {
if(req.http.host == "www.suz-lab.com") {
if(req.http.X-Forwarded-Proto == "https") {
set req.backend = suzlab;
set req.http.host = "www.suz-lab.com.s3-website-ap-northeast-1.amazonaws.com";
set req.request = "GET";
return(lookup);
}
}
return(error);
}

sub vcl_error {
if(req.http.host == "www.suz-lab.com") {
if(req.http.X-Forwarded-Proto != "https") {
set obj.http.Location = "https://" req.http.host req.url;
set obj.status = 301;
}
}
return(deliver);
}

backend suzlab {
.host = "www.suz-lab.com.s3-website-ap-northeast-1.amazonaws.com";
.port = "80";
}

今回、SSLターミネーションはELBで実施していますが、近頃リリースされた下記のCloudFrontでのターミネーションの方が、今後はいいかもしれません(未検証ですが)。

Amazon CloudFrontが独自SSL証明書とルートドメインホスティングをサポート

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。