私は Varnish の初心者で、Varnish が http ヘッダーによるキャッシュをサポートしているかどうかを知りたいと思っていました。Rest ベースの Web サービスを設計しました。Varnish を使用して結果をキャッシュすることを考えています。リクエスト情報 (apikey) の一部が http ヘッダー経由でどのように渡されるのか、着信リクエスト (vs クエリ文字列) を調べるときに Varnish がそれを考慮できるかどうかを知りたいと思いました。
6213 次
1 に答える
10
はい、できます。この API キーをどのように考慮する必要がありますか? すべてのユーザーに一意のキャッシュ エントリが必要な場合、キャッシュは、特定のユーザーが同じデータを複数回要求した場合にのみ使用されます。適切な Cache-Control HTTP Response ヘッダーを設定することで、ワニスのようなキャッシング プロキシを使用せずに長い道のりを歩むことができます (ただし、データの鮮度は再検証されません)。
Varnish には、少なくとも 2 つのアプローチがあります。
アプリケーションが HTTP 応答ヘッダーVary: apikeyを返すようにします。これは、apikey 要求ヘッダーが同じ場合にのみキャッシュ結果を再利用するように、任意の HTTP レベル キャッシュ (varnish など) に指示します。
または、より効率的には、vcl 構成の vcl_hash 関数を変更して、apikey ヘッダーを考慮に入れます。
サブ vcl_hash { set req.hash += req.http.apikey; }
于 2011-05-24T08:28:43.090 に答える