Я использую Apache 2.4.43 на CentOS 7.8 с Varnish 6 и PHP-FPM для обслуживания веб-сайта Magento 2.
Varnish прослушивает порт 80. Apache прослушивает 8080 для передачи контента Varnish, а также порт 443, который передает HTTPS-запросы к Varnish следующим образом:
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:80/
RequestHeader set X-Forwarded-Port "443"
RequestHeader set X-Forwarded-Proto "https"
Это работает для большинства запросов, однако иногда (~ 10% запросов) я получаю ответ 503 от Varnish и, в свою очередь, от Apache. Единственная ошибка, которую я вижу в журналах Apache, - это:
[proxy_http:error] [pid 6719:tid 140054596265728] (70008)Partial results are valid but processing is incomplete: [client x.x.x.x:53760] AH01110: error reading response, referer: http://example.com
Если я повторю запрос, он обычно срабатывает немедленно, хотя иногда мне приходится обновлять несколько раз, прежде чем запрос будет выполнен. Я замечаю, что это происходит чаще при выполнении больших пакетов запросов (например, страницы с сотнями внешних ресурсов на ней). Я тоже это замечаю кажется происходить с большими файлами, а не с маленькими.
Я предполагаю, что это может быть какой-то тайм-аут, но я не уверен, какие значения нужно настроить или как это дальше отлаживать.
Я пробовал следующее:
mod_reqtimeout
что я пробовал, и это не помогло.KeepAlive Off
что не помогло.retry=0
в конце ProxyPass
что, по-видимому, должно позволить сбойным прокси-соединениям немедленно повторить попытку, но это не помоглоЛюбая помощь очень ценится.