CDNを使用する場合と使用しない場合


13

私は、いくつかの小さなgif画像を画面にロードするWebアプリケーションで作業しています。相対パスを使用しています。つまり、PHPページを提供する同じWebサーバーからロードされます。操作は瞬時であり、私はWebサーバーとは異なる大陸にいます。

静的ファイルをユーザーの近くに移動するのは素晴らしいアイデアだと考えて、これ(Cloudfront)のCDNネットワークをテストしました。ただし、これらのファイルはすべて、画面にレンダリングされるのに0.5秒ほどかかります。もちろん、絶対パスを使用する必要があります(https://xyzvf.cloufront.net/images/)

何故ですか?絶対パスは問題ですか?私は自分のサーバーへのHTTPリクエストを減らしていますが、これは良いことですが、その遅延は厄介です。CDNはこれに適していませんか?


4
CDNがどこにあるかに大きく依存します。小さな画像がたくさんある場合、それらを組み合わせてスプライトにしますか?これは、すべての画像を読み込むための単一のリクエストのみを意味します。

これらの場所は次のとおり です。michaelgaigg.com / blog / images / amazon-cloudfront.jpg私はヨーロッパにいます。米国のウェブサーバーから画像を読み込むのは、ドイツやAmazonが提供するヨーロッパのどの場所から読み込むよりも高速です。それとも、ロード時間が問題ではなく、何か他のものですか?スプライトを使用することはすばらしいアイデアです。

「//xyzf.cloudfront.net/images」のようなホスト名でプロトコルなしのURLを使用することもできます。これにより、イメージの非SSLバージョンをキャッシュするためにISPおよび企業のプロキシキャッシュを利用できます。これは、訪問者のエクスペリエンスとサーバー/帯域幅の負荷の両方に多大なメリットをもたらします。私たちのサイトの訪問者はほぼすべて米国に拠点を置く金融機関からのものであり、何らかの形のキャッシングプロキシの背後から約85%の訪問を検出しています。YMMVなので、もちろん自分のサイトとトラフィックをテストしてください。
rmalayter

回答:


6

問題は、DNSまたはかもしれないkeep-alive-で、ブラウザはすでにのためのIPアドレスを持っているあなたのサーバーを、それがCDNのサーバーの名前を解決して、そこに新しい接続を開くために持っているのに対し、それへのオープン接続を持っており、それらの1または両方があなたが見ている遅延を構成します。

スプリッティングは、まだ良いアイデアですが、これらの問題を解決しません。実際、解決策はありません。唯一の快適さは、1,000枚の画像(およびCSSファイルとJSファイル、および必要なその他の静的ファイル)があれば0.5秒の遅延はそれほど長くならず、オリジンサーバーにそれ以上のストレスがかからないことです。さらに多くのユーザーがヒットしました。


これはベルを鳴らします。CDNサーバーへの最初の呼び出しは、ページの中央など、最初の画像が必要なときに行われることに言及する必要があります。

ああ、ページの非常に早い段階でCDNを参照すると、パフォーマンスが向上する(知覚される)場合があります。最善の方法は、CSNファイルをCDNに配置linkし、headセクションにタグを配置して、接続プロセスがすぐに開始されるようにすることです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.