share facebook facebook twitter menu hatena pocket slack

2011.09.27 TUE

VarnishでS3のコンテンツにx-jphone-copyrightヘッダを付与

鈴木 宏康

WRITTEN BY 鈴木 宏康

携帯サイトの著作物保護 ~画像転送禁止を厳しく設定する~の記事で紹介されているように、SoftBankの携帯で画像転送の禁止を行うには、画像ファイルのレスポンスヘッダにx-jphone-copyrightを付与する必要があります。

しかし画像をS3に置く場合は、S3はx-jphone-copyrightのようヘッダを付与することができないので、Varnishなどのプロキシーを経由する必要があります。

例として、s3.suz-lab.comでアクセスすることができるS3に対して、softbank.suz-lab.comでアクセスすることができるVarnish経由で上記のS3にアクセスするには、下記のように設定ファイル(/etc/varnish/default.vcl)を記述すれば大丈夫です。

backend default {
   .host = "localhost";
   .port = "80";
}
sub vcl_recv {
   if(req.http.host == "softbank.suz-lab.com") {
       set req.backend   = s3_suz_lab_com;
       set req.http.host = "s3.suz-lab.com";
       return (pass);
   }
   return (lookup);
}
sub vcl_deliver {
   if(req.http.host == "s3.suz-lab.com") {
       set resp.http.x-jphone-copyright = "no-store";
   }
   return (deliver);
}
backend s3_suz_lab_com {
   .host = "s3.suz-lab.com";
   .port = "80";
}

ポイントとしては、vcl_deliverでレスポンスヘッダを付与していることと、その際のHostヘッダは、softbank.suz-lab.comではなく、s3.suz-lab.comとなっていることかと思います。

ただし、可用性についてはこのVarnishサーバがボトルネックになってしまうので、必要に応じてAuto Scalingなどを利用する必要があると思います。

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

鈴木 宏康

鈴木 宏康

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

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。