2016-09-02 17 views
0

Nginxはコンテンツをキャッシュすることができます。つまり、リバースプロキシとして機能しますが、Nginx設定ではパージ時間を修正する必要があります。Nginxキャッシングはキャッシュ制御ヘッダーを尊重します

Nginxをアップストリームアプリケーションサーバーのキャッシュコントロールヘッダーに従って自動的にパージする方法はありますか?

+0

nginxは既にこれを行います。 http://nginx.org/r/proxy_cache_validキャッシュのパラメータは、「Expires」または「Cache-Control」のヘッダーフィールドで設定できます。 –

+0

することができます。私はそれが不可能だった(ソースatmを見つけることができない)を読んだ。あなたはそれを試しましたか?私はそれがどのようにnginxの設定で定義されたキャッシュの限界とヘッダーの1つの間で解決するのだろうか。例えばそれはちょうどnginxの設定の長さを無視するか、両方の値の最小値を適用します。 – mahemoff

+2

"キャッシュのパラメータは、**レスポンスヘッダ**に直接設定することもできます。これは、ディレクティブを使用したキャッシング時間の設定より**優先度が**高くなっています。 –

答えて

0

この問題を調査した結果、ほとんどの人が「1日の記事をキャッシュする」とは言えないCMSに関心があるように見えるが、リクエストごとに異なる可能性のある動的なアプリケーションサーバーではそれほど重要ではないことがわかった。

いくつかのオプションは以下のとおりです。

  • Nginx Plus
  • Ngx Cache Purge module、それは
  • 異なる有効期限時間を持つ複数のキャッシュを定義し、パスによって異なり、それらを適用する2年間で更新を見ていないけれども、それはだ場合可能。
  • Nginxでキャッシュを忘れて、その前にVarnishのようなサーバーを置いてください。

アップデート:さらに見ると、proxy_cache_validは存在する必要もないと思います。アップストリームからのキャッシュ制御/有効期限がない場合は、単にデフォルトの有効期限を設定します。 proxy_cache_validがない場合、Nginxはコンテンツを古いと見なしますが、すぐにパージされません。キャッシュ内の失効したコンテンツを保持する理由(「非アクティブ」パラメータと、オプションでproxy_cache_validで判断)は、proxy_cache_use_stale(上流にエラーがある場合に便利)を使用して失効したコンテンツを配信できることです。

関連する問題