5

適切な応答ではなく空の応答 (0 バイト) を送信することがある、問題のある IIS サーバーをキャッシュしています。これらの応答をキャッシュすることは大惨事であり、それは私たちのサーバーではないため、問題を解決する方法がありません. 代わりに、バックエンドからの応答が空 (0 バイト) の場合はキャッシュしないように Varnish に指示したいと思います。

VCL リファレンス ( https://www.varnish-cache.org/docs/4.0/reference/vcl.html ) を読んでも、これを解決する明確な方法がわかりません。

それはできますか?

4

2 に答える 2

5

値より大きいか小さいかを確認するために整数として使用する場合は、std を使用します。

import std; 

if (std.integer(beresp.http.content-length, 0) < 500) {
  #logic here 
}
于 2017-10-11T00:24:16.207 に答える
2

The size of the response should be available as a HTTP header.

Example (in vcl_backend_response):

if (beresp.http.Content-Length == "0") {
    return(retry);   # Retries the request
}

or:

if (beresp.http.Content-Length == "0") {
    beresp.uncacheable = true;   # Prevents object from being cached
}
于 2016-03-08T15:28:35.850 に答える