恰好 60 秒後清漆 503 錯誤…如何更改此超時值?
我在 Drupal 站點上通過 Apache 執行 Varnish。我有一個 PHP 腳本,它在我網站的某個路徑上執行,並且需要很長時間……比如 60 - 120 秒。嘗試訪問該頁面時,Varnish 總是在 60 秒後給我 503 大師冥想超時。
我嘗試將 Varnish connect_timeout 設置為一個非常高的值…我嘗試將 Apache 的 php.ini 中的所有超時設置為非常高的值…但是沒有運氣:Varnish 在正好 60 秒後一直給我 503 錯誤.
**所以這是我的問題:這個 60 秒的超時值是從哪裡來的?**我在這裡拔頭髮…
(僅供參考:如果我將 Varnish 排除在外,Apache 會在 60 - 120 秒後按預期提供頁面,這讓我認為超時必須在 Varnish 端的某個地方……)。
當我的伺服器負載不大時,我遇到了 503 錯誤。我試圖通過增加 vcl conf 中的超時來避免這個問題
first_byte_timeout = 300s; (預設設置為 60s)<- 可能這個可以回答你的問題(或不回答):)
請檢查一下
http://vincentfretin.ecreall.com/articles/varnish-guru-meditation-on-timeout
希望這個有幫助
Error 503 Backend fetch failed Backend fetch failed
要解決此問題,請在 Varnish 配置文件中增加 http_resp_hdr_len 參數的預設值。http_resp_hdr_len 參數指定總預設響應大小 32768 字節內的最大標頭長度。
如果 http_resp_hdr_len 值超過 32768 字節,您還必須使用 http_resp_size 參數增加預設響應大小。作為具有 root 權限的使用者,在文本編輯器中打開您的 Vanish 配置文件:
CentOS 6: /etc/sysconfig/varnish CentOS 7: /etc/varnish/varnish.params Ubuntu: /etc/default/varnish
搜尋 http_resp_hdr_len 參數。如果該參數不存在,則在thread_pool_max之後添加。將 http_resp_hdr_len 設置為等於您最大類別的產品數量乘以 21 的值。(每個產品標籤的長度約為 21 個字元。)
例如,如果您的最大類別有 3,000 個產品,則將值設置為 65536 字節應該可以工作:
-p http_resp_hdr_len=65536 \
將 http_resp_size 設置為適應增加的響應標頭長度的值。
例如,使用增加的標頭長度和預設響應大小的總和是一個很好的起點(例如,65536 + 32768 = 98304):
-p http_resp_size=98304 \
一個片段如下:
# DAEMON_OPTS is used by the init script. DAEMON_OPTS="-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT} \ -f ${VARNISH_VCL_CONF} \ -T ${VARNISH_ADMIN_LISTEN_ADDRESS}:${VARNISH_ADMIN_LISTEN_PORT} \ -p thread_pool_min=${VARNISH_MIN_THREADS} \ -p thread_pool_max=${VARNISH_MAX_THREADS} \ -p http_resp_hdr_len=65536 \ -p http_resp_size=98304 \ -S ${VARNISH_SECRET_FILE} \ -s ${VARNISH_STORAGE}"