Опишу немного для общего понимания схему:
Клиенты обращаются на несколько прокси серверов, которые проксирую запросы на другие (промежуточные) прокси и промежуточные прокси уже проксируют запрос на сервера оригинации.
Client <-> Edge_proxy <-> proxy_промежуточные <-> Origin server
Периодически возникают проблемы с 502-ми ответами в логе с одного из upstream серверов.
При этом на запрос к апстриму, где в логе 502, есть записи в error.log вида
2020/09/29 07:28:09 [error] 13038#13038: *4641196828 upstream prematurely closed connection while reading response header from upstream, client: <IP>, server: <DOMAIN>, request: "GET <URI> HTTP/1.1", upstream: "http://<IP>/<URI>", host: "<domain>"
или
2020/09/29 07:54:54 [error] 40174#40174: *3165979465 upstream prematurely closed connection while reading response header from upstream, client: <IP>, server: <DOMAIN>, request: "GET <URI> HTTP/1.1", upstream: "http://<IP>/<URI>", host: "<domain>"
Сам лог запроса:
IP <domain> [30/Sep/2020:10:12:57 +0000] "GET <URI> HTTP/1.1" 200 MISS "UPSTREAM1, UPSTREAM2" 75539 "-" "User_agent" "0.079" "-" "TLSv1.2/ECDHE-RSA-AES128-GCM-SHA256" "21/7498183988" 75945 "0, 75539" "-, 0.076" "0.000, 0.076" "502, 200" RU 3dca4fc6a9c7cf10a8448faa0 443
Где "0.000, 0.076" - request_time
"502, 200" - соотв коды ответов для Upstream1, Upstream2.
При этом через секунду или даже меньше, запросы с этого промежуточного прокси-сервера приходят с 200-м кодом.
+ очень смущает то, что время ответа 0.000. Значит никакие таймауты не превышались.
Проблем с сетью между серверами нет, MTR показывает 0% потерь на дистанции 1час+.
Ресурсов на серверах хватает.
Помогите, пожалуйста, понять в чем проблема.