0

CDN とキャッシングを理解しようとしていますが、答えが見つかりません。

Amazon cdn がオリジンサーバーのキャッシュされた画像から画像をキャッシュするようにするにはどうすればよいですか? そしてそれをテストする方法はありますか?

サーバーにマッピングされたCDNオリジンがあるため、見つからない場合

http://cdn.mywebsite.com/media/catalog/product/cache/1/small_image/190x/9df78eab33525d08d6e5fb8d27136e95/i/m/img101.jpg

代わりに探します

http://mywebsite.com/media/catalog/product/cache/1/small_image/190x/9df78eab33525d08d6e5fb8d27136e95/i/m/img101.jpg

Firebug を見ると、magento でキャッシュされたすべての要素が永続的に移動された 301 を取得しているのに対し、静的ファイルは OK 200 応答を取得しています。また、クラウドフロント URL を入力すると、magento キャッシュ要素の URL に自動的に変更されますが、静的要素のクラウドフロント URL のままです。

後で戻ってみると、たとえ 1 日であっても、CDN ソースは使用されないため、Amazon で magento キャッシュされた css/js/images がキャッシュされていないと思います。

キャッシュと js/css の最適化をオフにすると、クラウドフロント cdn に対して過剰な量の http 要求が行われます。

4

3 に答える 3

3

Cloudfrontが何らかの理由でサーバー(オリジン)にファイルを要求した場合、サーバーは200で応答しません。ログを確認し、ルールを書き換えて、Cloudfrontが301応答を受信する理由を特定する必要があります。

私が考えることができる1つの説明は、www。*などにリダイレクトするルールがあるかどうかです。

于 2012-09-26T23:33:29.843 に答える
1

私は同様の問題を抱えていましたが、その原因はGordon Knoppeの答えと同じでした. CloudFront CDN によって提供されるはずの多数のサムネイル画像を含むページがありました。奇妙なことに、3 つのうち 2 つがそうではなく、そうでないものは Fiddler で「301 - Permanent Redirected」と表示されていました。

画像の URL パスに大文字が含まれている可能性があり (含まれているものと含まれていないものがある)、すべての URL が小文字として扱われることを保証する書き換えルールと衝突したことが判明しました。最終的な結果は、パスが小文字でない場合に返された 301 ではなく、200 の返信でのみキャッシュされた CloudFront リクエストです。URL パスがすべて小文字になるように修正されると、すべてが正常に機能しました。

于 2012-09-28T21:32:29.457 に答える
0

ウィルバウドル

Amazon cloudfront、S3、および amazon OnePica Extensionで正確なものを実装しました。

そのため、OnePica は S3 と Cloudfront の製品イメージを既に処理しています。ただし、Css と Js については、コードをカスタマイズしています。Mage_Core_Helper_Data::mergeFiles() &メソッドMage_Core_Model_Design_Package::getMergedJsUrl($files)Mage_Core_Model_Design_Package::getMergedCssUrl($files)メソッドをカスタマイズします

もちろん、Media URL を cloudfront URL に変更する必要があります。ファイルを Gzip で圧縮する必要がある場合は、一言だけアドバイスしてください。次に、CSS と JS ファイルを gzip してから、S3 サーバーにアップロードする必要があります。これがあなたを助けることを願っています

于 2012-09-27T11:48:35.563 に答える