Lakierowanie 503 podczas renderowania wolnej strony


Varnish ciągle wyrzuca usługę 503 Niedostępna podczas próby załadowania strony, której utworzenie na serwerze WWW trwa dłużej.
W varnishlog widzę
       FetchError   c http read error: 0
błąd, chociaż nie bardzo rozumiem, co to znaczy.
Próbowałem również zwiększyć limity czasu zaplecza:
backend default {
.host = "x.x.x.x";
.port = "80";
.connect_timeout = 600s;
.first_byte_timeout = 600s;
.between_bytes_timeout = 600s;
}

Backend to serwer Apache.
Wszystkie inne strony działają poprawnie.
Jakieś pomysły?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Komunikat o błędzie oznacza (odniesienia do numerów linii pochodzą z lakieru 2.1.3):
Podczas pobierania nagłówka [bin/varnishd/cache_fetch.c: 399]:
a) wystąpiło przepełnienie [bin/varnishd/cache_httpconn.c: 170]
lub
b) wystąpił błąd podczas wywoływania read () [bin/varnishd/cache_httpconn.c: 175]
Liczba na końcu to wartość errno, więc ponieważ wynosi 0 (bez błędu), zrobiłbym to

założyć

ta opcja a) stało się z
         read()
nie może zwracać liczby ujemnej bez ustawionego parametru errno.
Przepełnienie jest wykrywane za pomocą następującego kodu [bin/varnishd/cache_httpconn.c: 167], który zwraca wynik ujemny:
i = (htc->ws->r - htc->rxbuf.e) - 1;/* space for NUL */

         htc->ws
to
         struct ws
[bin/varnishd/cache.h: 126], czyli „strukturę obszaru roboczego”. Element r to zarezerwowana długość tego obszaru roboczego.
         htc->rxbuf
odnosi się do
         struct txt
[bin/varnishd/cache.h: 109], ale nie ma komentarza opisującego, do jakich pozycji (b i e) się odnoszą. Może początek i koniec?
Nie wiem, jak zmieniany jest rozmiar obszarów roboczych (a nawet jeśli tak jest), ale - i tak naprawdę zgaduję - zasugerowałbym kilka możliwych przyczyn problemu:
  • Bardzo duża liczba tytułów
  • Bardzo długie tytuły
  • Błąd polega na tym, jak Varnish zmienia rozmiar obszarów roboczych (jeśli tak)

Pomocne może być znalezienie miejsca, w którym błąd może wystąpić, przeszukując przestrzeń:
  • Długość nagłówka
  • Numery nagłówków

i sprawdź, czy możesz wiarygodnie odtworzyć problem.
Możesz obejść problem, zwiększając
         http_headers
możliwość wykonania. (Jeśli używasz wersji & < 2.1, myślę, że jest to czas kompilacji lub opcja ustawienia)

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się