4

私は自分のウェブサイトをホストする専用サーバーを持っています。デフォルトのVCLファイルを使用してワニスをインストールしました。ここで、ニスに次のことを行うように指示します。

  1. 次の静的ファイルタイプ(.js、.css、.jpg、.png、.gif、.jpg)のみをキャッシュします。これらは提供されるサーバーファイルタイプであり、これらの拡張子で終わるURLではありません。
  2. 1Mバイトを超えるファイルをキャッシュしないでください
  3. ファイルのキャッシュは1日(または任意の期間)で期限切れになります。
  4. キャッシュは、Apacheが200のHTTPコードを送信した場合にのみ発生する可能性があります。

それ以外の場合は、リクエストをそのままにして、Apacheまたはその他のバックエンドによって処理されるようにします。

これらの要件を達成するには、VCLファイルに何を書き込む必要がありますか?または私は何をすべきですか?

4

2 に答える 2

2

これはすべて、vcl_fetchサブルーチンで実行できます。これは擬似コードと見なす必要があります。

if (beresp.http.content-type ~ "text/javascript|text/css|image/.*") {
    if (std.integer(beresp.http.Content-Length,0) < /* max size in bytes here */ ) {
        if (beresp.status == 200) { /*  backend returned 200 */
            set obj.ttl = 86400; /* cache for one day */
            return (deliver);
        }
    }
} 
set obj.ttl = 120;
return (hit_for_pass); /* won't be cached */
于 2013-08-11T22:01:58.260 に答える
2

私がしたこと :

1-すべての静的コンテンツを別のドメインに分離します(つまり、動的ページを提供するドメインは、静的コンテンツを提供するドメインとは異なります)。

2-静的コンテンツを提供するドメインに別の専用IPアドレスを割り当てます

3-ポート80でそのIP(つまり静的コンテンツIP)のみをリッスンするようにワニスに指示します

4- Apache confを使用して、各静的コンテンツタイプへのキャッシュ期間を制御します(ワニスはそのヘッダーに従うだけです)

短所:

1-ワニスは、そのままにしておく必要がある要求をリッスンまたは処理しません。Apacheは元のIP(パフォーマンス)をリッスンするため、これらの要求(動的ページの場合)はApacheに直接送信されます。

2-デフォルトのVCLデフォルトファイルを変更する必要はありません(デバッグする場合のみ)。これは、VCL言語の原則を知らない人に役立ちます。

3-あなたはApacheconfからすべてを制御しています。

長所:

1-予備のIPがない場合は、新しい専用IPを購入する必要があります。

ありがとう

于 2013-09-29T14:00:20.880 に答える