Sporadycznie natrafiałem na ten błąd i nie mogłem zrozumieć. Googlowanie nie pomogło.
W końcu się dowiedziałem. Prowadzę kilka kontenerów docker, między innymi NGINX
i Apache
. Dostępne polecenie dotyczy konkretnego kontenera, uruchomione Apache
. Okazało się, że mam również cron
pracę, wykonując czasami ciężkie podnoszenie ciężarów, pracując na tym samym kontenerze. W zależności od obciążenia tego cron
kontenera, nie był on w stanie odpowiedzieć na moje polecenie w odpowiednim czasie, co spowodowało, error 52 empty reply from server
a nawet 502 Bad Gateway
.
Odkryłem i zweryfikowałem to po prostu, curl
gdy zauważyłem, że proces, który badałem, zajął mniej niż 2 sekundy i nagle otrzymałem błąd 52, a następnie błąd 502, a potem znowu mniej niż 2 sekundy - więc zdecydowanie nie był to mój kod który pozostał niezmieniony. Używając ps aux
w kontenerze, widziałem uruchomiony i zrozumiany inny proces.
Właściwie, to przeszkadza 502 Bad Gateway
ze NGINX
z pracy długo działających i nie można go naprawić z odpowiednimi parametrami, więc w końcu poddał się i włącza te rzeczy Apache
. Dlatego jeszcze bardziej zaskoczyły mnie te błędy.
Rozwiązanie jest proste. Właśnie odpaliłem kilka instancji tego kontenera za pomocą docker service scale
i to wszystko. docker
samodzielne równoważenie obciążenia.