Cache Configuration Tool Tab

Cache Configuration Toolタブでの設定

CacheFuに同梱されているドキュメント(cachefu/CacheSetup/doc/audience.rest)の超訳です。
Page 6 of 7.

Cache configuration

CacheFuはCacheFuだけで利用することができます(Zope only)。これはZopeのフロントに(SquidやApacheなどの)プロクシサーバが何もないことを意味します。この場合にはZopeとウェブブラウザ上でキャッシュされることになります。

しかし、もしApacheやSquid以外のプロクシサーバをZopeのフロントに置いたときには、CacheFuはプロクシサーバに対してJavaScriptやCSSなどをキャッシュするようにヘッダを渡します。

一 方Squidを置いた場合には、CacheFuはApacheなどを置いたときと同様のヘッダを渡し、それにプラスして(Squidは消去要求をサポート しているので)選択的にSquidからキャッシュをクリアすることで、もっと他のページをキャッシュさせることも可能です。

もしかしたら Apache(Squidにはできないことができる、多くのアドオンプロダクトを持った多機能ウェブサーバ)を利用する必要があり、かつ、Squidも利 用したいということがあるかもしれません。このときには「Zope behind Squid behind Apache」を選んでください。Apacheを通してリクエストされたPloneサイト上のコンテンツはSquid自身によって返されるかもしれません し、あるいは実際にZope/Ploneが答えるかもしれません。

もしあなたがSquidと一緒に利用しようとしているならば、後述する「Setup with Squid」を読んでください。どのようにSquidを設定するかということについての重要な情報があります。

もしあなたがApacheと一緒に利用しようとしているならば、httpd.confのバーチャルホストの設定が必要になるでしょう。後述部を参照してください。

もしあなたがZope単体で利用しようとしているならば、特に設定は必要ありません。

Site Domains

CacheFuがSquidにキャッシュさせたページを消去するように伝えるためには、CacheFuはSquidが稼働しているドメインを知る必要があります。

例 えばあなたが「www.example.com」というサーバを動かしているとすると、例えばキャッシュされたabout-usのページは 「www.example.com/about-us」に存在する事になります。Squid(あるいはSquid+Apache)の設定によっ て、(wwwの無い)「example.com/about-us」でも同じページを見る事ができるかもしれません。

CacheFuはこれらのURLの両方を消去するようにSquidに伝えなければならないのです。CacheFuはこれらのページが同じものであると知っていても、Squidはこの2つのページが同じだと言う事をしらないからです。

そ のためにあなたはすべてのドメイン名をここでリストアップしなければなりません。そして最後にポート番号(通常80番)を付けるのを忘れないでください。 もしhttpsも利用しているならば、「https://example.com:443」「https://www.example.com:443」 も含める事を忘れないでください。

さらに注意して欲しいのは、ここで記述するポート番号は一般的に訪問されるポート番号であって、実際に Zopeのインスタンスが使用しているポート番号ではないということです。たいていのZopeは8080番ポート(MacOSでは8282番)を利用しま すが、Squidに関して言えばオリジナルのリクエストが大切なのであって、これは80番ポートから得られるからです。

あなたがSquidを利用していないのならばここは空欄にして置いてください。ここに入力した値が意味を持ってくるのは「Zope behind Squid」や「Zope behind Squid behind Apache」を選んだときだけです。

Squid URLs

もしあなたがSquidとZopeだけを使っているならば、Squidはふつうインターネットからのリクエストに80番ポートで応えます。CacheFuは消去リクエストを80番ポートのSquidに送る方法はもともと知っているので、この場合は空欄のままでOKです。

し かしSquidが80番ポートで動いているとは限りません。もっともよくあるのは、SquidのフロントでApacheが起動しておりApacheがイン ターネットからのリクエストを最初に受け取るような場合です。この場合は、CacheFuにSquidがどこにいるのか教えてあげる必要があります。ふつ うこれは「http://127.0.0.1:3128」になります。

もしあなたがSquidを別のPCで起動していたり、異なるポートで 動いてたりしているならば、この欄にどこで動いているかを入力してください。また複数のSquidを立ち上げているならば、消去リクエストを送る事ができ るように「すべての」Squidをここにリストアップしてください。

Compression

キャッシングの話とは別に、CacheFuはページを圧縮する事も可能です。

この圧縮技術はウェブテクノロジーの一般的な部類のものです。ページは「gzip圧縮」で圧縮されて送られ、たいていのブラウザはこの圧縮されたページを受け取るとこれを解凍し、ユーザに表示します。

「Never」はもっとも安全な選択肢です。ブラウザによる対応の違いを考えずにすみます。

「Always」は尋常でない選択肢で、これを選ぶのはおそらく間違いです。いくつかのブラウザは圧縮されたページを扱う事ができません。すなわち圧縮ページを常に送ると言う事は、そういったブラウザを使う人たちにあなたのサイトを見せないと言うことになるのです。

ケー スバイケースでブラウザが「Accept-Encoding」ヘッダに何を送るかによって決める事もできます。このヘッダはブラウザによって送られるもの で、どんな種類のコンテンツを受け取る事ができるかどうかを示すものです。ブラウザが圧縮コンテンツを受ける事ができると示したときに、圧縮ページを送り ます。

「Accept-Encoding」と「User-Agent」ヘッダの両方を利用する事もできます。「User-Agent」はそ のブラウザがどんなブラウザなのかを示すものです。もしこのオプションが選択されると、CacheFuはこのブラウザが圧縮コンテンツを扱えるかどうか、 および上手く扱えるブラウザかどうかをチェックします。ただしUser-Agentをチェックするのはとてもコストがかかる可能性があります。Squid はそれぞれのブラウザとOSの組み合わせに関して異なるバージョンのキャッシュを確保するでしょう。結果としてあまりヒットしないようなバージョンの キャッシュのためにディスク容量を消費することになってしまいます。ほとんど不具合のない「Accept-Encoding」を使うのがよいでしょう。

Vary Header

最 新ではないコンテンツを送らないために、キャッシュシステム(プロクシサーバやブラウザでのキャッシング)は、そのコンテンツのURL以外のことも知る必 要があります。たとえば「http://example.com/about-us」というページのキャッシュを返すときに、このページが英語で書かれて いるにもかかわらずギリシャ語を話す人にこれを送ってしまうような場合はまずい事になります。

よってこの欄には、プロクシサーバやブラウザによって理解される、結果を変えるための値を列挙します。

た とえば「Accept-Language」というヘッダがセットされているときに「http://example.com/about-us」がリクエス トされたとすると、キャッシュプログラムはそのページを「Accept-Language」の値と共にキャッシュされることになります。このとき、再び 「Accept-Language」をもったリクエストが来たとすると、「Accept-Language」の値が同じだった場合にのみキャッシュされた ページが返されます。値が同じでなければ新しく生成されたページが返され、このページは「http://example.com/about-us」のも う一つのコピーとしてキャッシュされます。

もしあなたのサイトが複数言語に対応しているならば、ここに「Accept-Language」と入力しておきましょう。こうすることで、ギリシャ語を話す人に英語のページを表示する事を避ける事ができます。

特 に複数言語には対応していない、あるいは他の言語ではページを返したくない(PlacelessTranslationServiceをプロダクトからは ずせばOK)場合には、「Accept-Language」を削除します。この値を保持すると言う事は、キャッシュシステムがAccept- Language=enの場合のページとAccept-Language=grの場合のページを別々にキープするということを意味します。たとえそのペー ジの表示が言語によって変わらなくとも、です。キャッシュのためのメモリも増えますし、Zopeにリクエストが届く頻度も多くなります。

も しあなたが上記の圧縮を許しているならば、Accept-Encodingもここに書こうと思うかもしれません。ここにAccept-Encodingを 書くと言う事は、あなたが圧縮したページと圧縮していないページを同じものと考えていないということになります。言い換えれば、それぞれ別のページとして キャッシュされるということになります。

あなたのサイトが複数言語サイトであり、かつ、圧縮を許可しているならば両方を書いておきましょう。