www.lottoresults.ie の静的画像、js、css ファイルを提供するように Cloudfront をセットアップしました。カスタムオリジンサーバーを使用しました。
私が設定したクラウドフロント ドメイン名は icdn.lottoresults.ie です。Bind9 dns を使用してこれをセットアップし、icdn.lottoresults.ie はクラウドフロント ディストリビューションの CNAME です。
それは大丈夫です。
ただし、Web サイトのパフォーマンスの最適化 (Yslow、google pagespeed など) のために、Cache-control ヘッダーと Expires ヘッダーを設定したいのですが、Etag は必要ありません。
これを行うには、www.lottoresults.ie の doc_root の htaccess ファイルに次のように記述します。
Header unset Pragma
FileETag none
Header unset ETag
<FilesMatch "(.*)\.(ico|jpg|jpeg|png|gif|js|css|swf)$">
ExpiresActive on
ExpiresDefault "access plus 1 year"
Header set Cache-Control "max-age=1864000, public"
Header unset Last-Modified
</FilesMatch>
問題は、クラウドフロント ディストリビューション (icdn) からのアセットの場合、Cache-control または Expires ヘッダーはありませんが、Etags はありますが、www には Cache-control ヘッダーと Expires ヘッダーがありますが、Etags はありません。
クラウドフロント ドメインからアセットを照会すると、Cache-control または Expires ヘッダーはありませんが、Etag はあります。
curl -I -L http://icdn.lottoresults.ie/images/green-header.jpg
HTTP/1.0 200 OK
Date: Sun, 01 Apr 2012 22:58:30 GMT
Server: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny13 with Suhosin-Patch
Last-Modified: Mon, 08 Aug 2011 20:23:00 GMT
**ETag**: "28a213-19b-4aa0436a1b100"
Accept-Ranges: bytes
Content-Length: 411
Content-Type: image/jpeg
Age: 22137
X-Cache: Hit from cloudfront
X-Amz-Cf-Id: AV55dR4_vWHtlTbU6E9M2tkh9reoAwZcHlD4y9csetK6B6Ey8gDPJA=
Via: 1.0 8adf6ec3585d73c680b4a6d5052988d8.cloudfront.net (CloudFront)
Connection: close
しかし、オリジン サーバーから同じアセットをクエリすると、キャッシュ コントロール、有効期限があり、Etags が含まれていない次の結果が得られます。
curl -I -L http://www.lottoresults.ie/images/green-header.jpg
HTTP/1.1 200 OK
Date: Fri, 06 Apr 2012 20:50:08 GMT
Server: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny13 with Suhosin-Patch
Accept-Ranges: bytes
Content-Length: 411
**Cache-Control**: max-age=1864000, public
**Expires**: Sat, 06 Apr 2013 20:50:08 GMT
Content-Type: image/jpeg
ヘルプやアドバイスをいただければ幸いです。
ありがとうポール