Я использую Varnish поверх Apache на сайте Drupal. У меня есть PHP-скрипт, который выполняется на определенном пути моего сайта и занимает очень много времени ... например, 60–120 секунд. При попытке доступа к этой странице Varnish всегда дает мне 503 тайм-аута для медитации гуру ровно через 60 секунд.
Я попытался установить Varnish connect_timeout на действительно высокое значение ... Я попытался установить все таймауты в Apache php.ini на действительно высокие значения ... но не повезло: Varnish просто продолжает выдавать мне ошибку 503 ровно через 60 секунд .
Итак, вот мой вопрос: откуда это значение тайм-аута 60 секунд? Я тут за волосы выдергиваю ...
(К вашему сведению: если я уберу Varnish из изображения, Apache обслужит страницу, как ожидалось, через 60–120 секунд, что заставляет меня думать, что тайм-аут должен быть где-то на стороне Varnish ...).
Я столкнулся с ошибкой 503, когда мой сервер не сильно загружен. Я попытался избежать этой проблемы, увеличив тайм-аут в vcl conf
first_byte_timeout = 300 с; (по умолчанию 60 секунд) <- наверное, это ответит на ваш вопрос (или нет) :)
Пожалуйста, проверьте это
http://vincentfretin.ecreall.com/articles/varnish-guru-meditation-on-timeout
надеюсь, что это поможет
Error 503 Backend fetch failed
Backend fetch failed
Чтобы решить эту проблему, увеличьте значение по умолчанию параметра http_resp_hdr_len в файле конфигурации Varnish. Параметр 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 символа).
Например, установка значения 65536 байт должна работать, если ваша самая большая категория содержит 3000 товаров:
-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}"