2016-06-28 8 views
11

CentOS 7でnginx 1.6.3を使用してサイトのキャッシュサーバーを設定しました.HTMLヘッダーをサービスファイルに追加して、そのようなキャッシュサーバ(HIT、MISS、またはBYPASS)から来た:nginxキャッシュファイルの年齢をヘッダーに表示する方法

add_header X-Cached $upstream_cache_status; 

しかし、私は、キャッシュされたファイルの年齢を表示するためのヘッダを追加する方法があります場合、私のように、見てみたいと思いますソリューションにはproxy_cache_valid 200 60m;が設定されています。その設定を尊重していることを確認したいと思います。

だから、私が探しているようなものになるだろう:私は一種の何かを見つけることができないんだ

add_header Cache-Age $upstream_cache_age; 

、あなたは助けることができますか?

おかげ

+0

また、あなたは確かにAge HTTPレスポンスヘッダを提供しないニスキャッシュ、などのさまざまなキャッシング層アーキテクチャを使用することができます数秒でキャッシュされ、有効期限が切れ、プログラムが計算を行うようにするか、Nginx + Lua + Custom Cacheモジュールを使用する必要がありますか?どちらのアプローチが実現可能ですか? –

答えて

1

nginxのドキュメントはかなり網羅ある - キャッシュされたファイルを直接相対年齢とは変数がありません。

最良の方法は、$upsteam_http_dateを通じてDateヘッダをピックアップして、リソースの絶対年齢を取得するために$upstream_http_変数クラスを使用することです。 HTTP/1.1のDateヘッダフィールドのセマンティックな意味については

add_header X-Cache-Date $upstream_http_date; 

は、基本的に、これは特に(正確に何をしたい達成する必要があり、HTTPレスポンスの生成時間としてそれを説明している、rfc7231#section-7.1.1.2を参照してくださいので、バックエンドが同じタイムカウントで実行されている場合)。

0

これはNginx Perl moduleで解決しようとしましたが、$upstream_http_NAMEヘッダーにアクセスできないので、プロキシアプリケーションがレンダリング時に作成したタイムスタンプヘッダーから現在の時刻を正常に計算できます。あなたはどちらかのハードコードは、これらの応答は、このレコードだった時間を追加することができます

http://book.varnish-software.com/3.0/HTTP.html#age

関連する問題