Мы запускаем брандмауэр / балансировщик нагрузки pfsense с varnish as service, перед веб-серверами Fedora linux, на которых запущен apache.
Мы периодически получаем 503 ошибки посредничества гуру. Мы немного застряли, почесывая затылок, потому что это нелегко повторить. Таймауты установлены на 30 секунд (соединение и первый байт), но страница 503 будет отображаться мгновенно, а не через 30 секунд. Затем, если вы обновитесь немедленно, это может сработать мгновенно, а иногда и до 100 обновлений.
Средняя нагрузка на веб-серверы <1, сервер БД <3 (все серверы (веб, db, pfsense / varnish) являются физическими, а не виртуальными машинами.
Я бы подумал, если бы таймауты были достигнуты, то страница 503 отобразилась бы только через 30 секунд, я ошибаюсь?
Кроме того, когда возникает ошибка, в файлах журнала apache, похоже, нет соответствующей ошибки.
Похоже, это влияет на страницы, а также на изображения, поэтому возможно, что страница загружается нормально, и для 9/10 изображений на странице все будет хорошо, но 1 не работает
Ниже приведен пример отладки лака. Он говорит, что нет бэкэнд-соединения, но я не могу понять, почему, если на apache была высокая нагрузка, я мог бы понять, что это нестабильно
Машины находятся на одной и той же локальной сети Ethernet.
21 ReqStart c *IP-REMOVED* 33418 1274368062
21 RxRequest c GET
21 RxURL c /fashion/
21 RxProtocol c HTTP/1.1
21 RxHeader c User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.5) Gecko/2008121622 Fedora/3.0.5-1.fc10 Firefox/3.0.5
21 RxHeader c Host: *ourdomain.com*
21 RxHeader c Accept: */*
21 RxHeader c Accept-Encoding: deflate, gzip
21 VCL_call c recv lookup
21 VCL_call c hash
21 Hash c /fashion/
21 Hash c *ourdomain.com*
21 VCL_return c hash
21 VCL_call c miss fetch
21 FetchError c no backend connection
21 VCL_call c error restart
21 VCL_call c recv lookup
21 VCL_call c hash
21 Hash c /fashion/
21 Hash c *ourdomain.com*
21 VCL_return c hash
21 VCL_call c miss fetch
21 FetchError c no backend connection
21 VCL_call c error restart
21 VCL_call c recv lookup
21 VCL_call c hash
21 Hash c /fashion/
21 Hash c *ourdomain.com*
21 VCL_return c hash
21 VCL_call c miss fetch
21 FetchError c no backend connection
21 VCL_call c error deliver
21 VCL_call c deliver deliver
21 TxProtocol c HTTP/1.1
21 TxStatus c 503
21 TxResponse c Service Unavailable
21 TxHeader c Server: Varnish
21 TxHeader c Content-Type: text/html; charset=utf-8
21 TxHeader c Content-Length: 384
21 TxHeader c Accept-Ranges: bytes
21 TxHeader c Date: Wed, 11 Apr 2012 10:36:17 GMT
21 TxHeader c X-Varnish: 1274368062
21 TxHeader c Age: 0
21 TxHeader c Via: 1.1 varnish
21 TxHeader c Connection: close
21 TxHeader c X-Cache: MISS
21 Length c 384
21 ReqEnd c 1274368062 1334140577.449995041 1334140577.450334787 1.794108152 0.000282764 0.000056982
Можете ли вы подключиться с помощью telnet с машины, на которой запущен лак, к IP / порту, на котором работает apache, когда появляются 503? Возможно, в лакировочной машине или в процессе закончились дескрипторы файлов? Возможно, apache попал в MaxClients? Каковы значения backend_unhealthy, backend_busy, backend_fail (см. http://comments.gmane.org/gmane.comp.web.varnish.misc/6756 также). Вы используете датчики здоровья с лаком?