web-dev-qa-db-ja.com

CDNでマルチサイトを使用する

BluehostでホストされているWordpress Multisiteを実行していますが、ボリュームの少ないサイトは5つしかありません。私のサイトのロード時間は最近ひどいものだったので、スピードの問題を解決するためにLazy Load、DBの最適化、Smush.it、そしてQuick Cacheを使った。

良いCDNを探すのに多くの時間を費やして、そして明らかに、WP Multisiteで簡単に実装できるCDNはありません。いずれもW3 Total Cacheを必要としますが、これはネットワーク全体でアクティブにすることはできません。ミラー静的ページなどを作成する方法についての危険そうなチュートリアルがありますが、明確で単純なインストールをするものは何もありません。

私の選択しているCDNはMaxCDNでしょうが、それらもW3TCを必要とします。

クラウドにMultisiteインストールを配置する方法、またはCDNサービスにどのようにして決定的な答えがあるのでしょうか。

2
Jordan M.

最も簡単な方法は、 "Origin Pull" CDNを使用することです。これらの種類の配信ネットワークはあなたのサイトから直接メディアを引き出し、それをキャッシュします(通常あなたのキャッシュ関連HTTPヘッダによって定義されたTTLのために)。

OriginのプルCDNは、マルチサイトではうまく動作します。コンテンツ内のすべての静的リソースURLをCDNに書き換えます。ページが読み込まれると、CDNからリソースが要求されます。 CDNがそれらを持っていない場合、それは行ってあなたのサーバーからそれらを取得し、それらを保存してからそれらを提供します。

私はこの目的でAmazon CloudFrontを使用します - 無料ではありませんが、43万ドルの継続期間と3 GBの転送コストが約80セントかかります。

難しいのは、ページ内の静的リソースのURLをCDNに書き換えることだけです。これは、出力バッファリングと正規表現のマジックでかなり簡単に行えます。 これが私の書いたいくつかのクライアントサイトでの例です - Mark JaquithのCDNプラグイン に触発されました これらは両方ともマルチサイトでうまく機能するはずです、あるいはあなたはあなた自身のものを転がすことができます - あなたはそうすべきです!その楽しさ!

1つ注意しなければならないのは、あなたのサーバは正しく設定され、適切なキャッシュ関連ヘッダ(Cache-ControlExpiresなど)を送信する必要があるということです。 ms-files.phpはデフォルトで オフになっています そしてそれは いくつかのキャッシュヘッダを送りました ただし、OriginのプルCDNによっては、OriginのHTTPヘッダを無視するカスタムの有効期限ルールを設定できます。

2
chrisguitarguy

私はCDNとして クラウドフレア を使うことで大きな成功を収めました。統合するのはかなり簡単で、無料の計画を立てています。

Jetpackには、 photon という新しい機能もあります。これは、箱から出してすぐに使用できる無料のCDNでもありますが、画像にのみ使用できます。

0
Bainternet