Странные 502 ответы.

elc nginx-forum на forum.nginx.org
Ср Сен 30 15:25:46 UTC 2020


Опишу немного для общего понимания схему:

Клиенты обращаются на несколько прокси серверов, которые проксирую запросы
на другие (промежуточные) прокси и промежуточные прокси уже проксируют
запрос на сервера оригинации.
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час+.
Ресурсов на серверах хватает.

Помогите, пожалуйста, понять в чем проблема.

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,289619,289619#msg-289619



Подробная информация о списке рассылки nginx-ru