Apache-2.2

清漆生病了

  • February 11, 2014

我在使用 Varnish 時遇到問題,它適用於幾個視圖,然後就生病了……奇怪的是它確實適用於大約 20 或 30 個請求。如果我直接呼叫 apache 它工作正常。我在 Debian Squeeze 上執行 Varnish 版本:3.0.3-1,目前,Apache 在埠 80 上,Varnish 在同一台伺服器上的埠 8080 上。

我使用https://github.com/mattiasgeniar/varnish-3.0-configuration-templates作為我的 VCL 的基礎,並修改了 VCL 以支持 Concrete5。

有人知道我應該如何調試嗎?

backend default {
   .host = "127.0.0.1";
   .port = "80";
   .connect_timeout = 1.5s; 
   .first_byte_timeout = 45s; 
   .between_bytes_timeout = 30s; 
   .probe = {
       .url = "/";
       .timeout  = 1s;
       .interval = 10s;
       .window    = 10;
       .threshold = 8;
   }
}

日誌

   0 CLI          - Rd ping
   0 CLI          - Wr 200 19 PONG 1353791312 1.0
   0 CLI          - Rd ping
   0 CLI          - Wr 200 19 PONG 1353791315 1.0
   0 Backend_health - default Still sick 4--X-R- 0 8 10 0.000689 0.000000 HTTP/1.1 301 Moved Permanently

(301 是因為我檢查 www。)

您的後端正在響應301執行狀況檢查;預設情況下, only200是預期的“健康”響應。改變你的探頭:

.probe = {
   .url = "/";
   .timeout  = 1s;
   .interval = 10s;
   .window    = 10;
   .threshold = 8;
   .expected_response = 301;
}

編輯 :

這就是為什麼日誌在開始時返回正常但過一段時間後會逐漸下降到最終狀態為生病的原因: .interval、.threshold 和 .window 的設置 - 執行狀況檢查得到“不健康” ” 響應,但直到他們得到足夠的不良響應以將視窗中的成功次數降至門檻值以下時,他們才認為工人生病了

引用自:https://serverfault.com/questions/451840