Varnish – Błąd 503 Pobieranie z zaplecza nie powiodło się

Otrzymuję ten błąd. Jak mogę to zrobić? próbuję edytować wiele razy, ale nadal nie działa.

Błąd 503 Pobieranie z zaplecza nie powiodło się
Pobieranie z zaplecza nie powiodło się

Medytacja guru :
XID: 35

Serwer pamięci podręcznej lakieru

Mój CentOS 7: /etc/varnish/varnish.params

# Opis konfiguracji środowiska lakierowania. Zostało to zaczerpnięte z # starego stylu sysconfig / defaults settings

# Ustaw tę wartość na 1, aby przeładowanie systemd próbowało przełączyć VCL bez restartu. RELOAD_VCL = 1

# Główny plik konfiguracyjny. Prawdopodobnie chcesz to zmienić. VARNISH_VCL_CONF = / etc / varnish / default.vcl

# Domyślny adres i port do połączenia. Pusty adres oznacza wszystkie interfejsy IPv4 # i IPv6, w przeciwnym razie określ nazwę hosta, kropkę # quad # IPv4 lub adres IPv6 w nawiasach. # VARNISH_LISTEN_ADDRESS = 192.168.1.5 VARNISH_LISTEN_PORT = 80

# Adres nasłuchiwania i port interfejsu administratora VARNISH_ADMIN_LISTEN_ADDRESS = 127.0.0.1 VARNISH_ADMIN_LISTEN_PORT = 6082

# Współdzielony tajny plik interfejsu administratora VRET_FIL / etc / etc varnish / secret

# Specyfikacja pamięci masowej zaplecza, patrz Typy pamięci na stronie podręcznika varnishd (5) #, aby uzyskać szczegółowe informacje. VARNISH_STORAGE = „malloc, 1024M”

# Użytkownik i grupa dla procesów roboczych varnishd VARNISH_USER = varnish VARNISH_GROUP = varnish

# Inne opcje, zobacz stronę manuala varnishd (1) DAEMON_OPTS = „-a: 80 -T localhost: 6082 -f /etc/varnish/default.vcl -S / etc / varnish / secret -s malloc, 1024m -p thread_pool_min = 5 -p thread_pool_max = 500 -p thread_pool_timeout = 300 -p http_resp_hdr_len = 65536 -p http_resp_size = 98304 -p workspace_backend = 98304 „

aktualizacja:

1) Tak, wygenerowany plik vcl przez Magento.

2)

tcp 0 0 0.0.0.0:80 0.0.0.0:* SŁUCHAJ 4338 / varnishd

tcp 0 0 127.0.0.1:6082 0.0.0.0:* SŁUCHAJ 4337 / varnishd

tcp6 0 0 ::: 80 ::: * SŁUCHAJ 4338 / varnishd

tcp6 0 0 ::: 8080 ::: * SŁUCHAJ 3905 / httpd

3) Dodano w edytorze vcl http: // beacuse when ja / pub / health_check.php będzie mieć wartość 503, ale dodany http: // motyw wygląda na coś złego, bez css.

.probe = {. url = „ http://example.com/pub/health_check.php „;

4) użyłem tego polecenia

curl -I -v –location-trust „ http://example.com

Pokaż to, ale nie wiem, czy działa lub nie działa, ponieważ Katalog var / page_cache / nie jest pusty. plik tagów magów jest nadal tutaj.

< X-Magento-Cache-Control: max-age = 0, must-revalidate, no-cache, no-store

X-Magento-Cache-Control: max-age = 0, must-revalidate, no-cache, no-store < Wiek: 0 Wiek: 0 <

X-Magento-Cache-Debug: MISS

X -Magento-Cache-Debug: MISS

Komentarze

  • nie możesz połączyć się z zapleczem. niech ' s edytuje plik /etc/varnish/default.vcl. Znajdź wiersz .url = ” /pub/health_check.php”, a następnie zmień go .url = ” / „; lub .url = ” /health_check.php”;

Odpowiedź

Po porównaniu z /etc/varnish/default.vcl znalazłem po usunięciu . sondy w domyślnej konfiguracji zaplecza może rozwiązać ten problem. Wciąż zastanawiam się, dlaczego sonda spowodowała to

backend default { .host = "127.0.0.1"; .port = "8080"; .first_byte_timeout = 600s; .probe = { .url = "/pub/health_check.php"; .timeout = 2s; .interval = 5s; .window = 10; .threshold = 5; } } 

do

backend default { .host = "127.0.0.1"; .port = "8080"; .first_byte_timeout = 600s; } 

Zaktualizowano:

Po prostu zmień następujący wiersz:

.url = "/pub/health_check.php"; 

do

.url = "/health_check.php"; 

rozwiązał problem, zapoznaj się z tym artykułem https://www.sohaib.com/magento-2-12-varnish-error-503-backend-fetch-failed-solved-php-7-1-nginx-varnish-5-x/

Odpowiedź

Istnieje kilka możliwych przyczyn błędu. Postępuję zgodnie z tym samouczkiem (Rozwiązanie 2) i pomyślnie naprawiam błąd: https://magentip.com/magento-2-error-503-backend-fetch-failed-with-varnish-cache/

1. Długość tagów pamięci podręcznej używanych przez Magento przekracza domyślną wartość Varnish

Zmienimy wartość http_resp_hdr_len w pliku konfiguracyjnym Varnish . (Maksymalna długość dowolnego nagłówka odpowiedzi HTTP zaplecza

Ścieżka do pliku konfiguracyjnego varnish to

-Ubuntu: / etc / default / varnish

-Centos 6: / etc / sysconfig / varnish

-Centos 7: / etc / varnish / varnish.params

zmień wartość http_resp_hdr_len (znajdującą się w linii 101 po thread_pool_max) na

-p http_resp_hdr_len=70000 \ 

Zmień także http_resp_size na

-p http_resp_size=100000 \ 

2. Nieprawidłowa lokalizacja health_check.php w pliku konfiguracyjnym Varnish

Przejdź do pliku konfiguracyjnego Varnish (/etc/varnish/default.vcl) i znajdź te linie

.probe = { .url = "/pub/health_check.php"; 

Zmień na

.probe = { .url = "/health_check.php"; 

Komentarze

  • Zmiana http_resp_hdr_len i http_resp_size w konfiguracji init systemd (/lib/systemd/system/varnish.service) zadziałała dla mnie. Dzięki!

Odpowiedź

Błędy „Błąd 503 Pobieranie z zaplecza nie powiodło się” zazwyczaj oznaczają dwie rzeczy:

  • Varnish nie może pobrać odpowiedzi z Magento z powodu problemów z konfiguracją
  • Wystąpił problem po stronie Magento. Magento wysyła kod odpowiedzi HTTP 5xx.

Problemy z konfiguracją lakieru

Jest kilka problemów z konfiguracją, ale najczęściej są to:

  • używany jest domyślny plik default.vcl. Upewnij się, że pobierasz plik vcl wygenerowany przez Magento
  • nieprawidłowy backend określony w pliku vcl. Sprawdź port i adres IP podany w pliku vcl. Znalazłem netstat -tnulp przydatne narzędzie do sprawdzania działających usług i ich portów
  • Twojej instancji Magento nie ma w katalogu głównym_internetowym. Sprawdź każdą ścieżkę względną w pliku vcl i dodaj odpowiednie przedrostki (plik kontroli stanu, pliki multimedialne …).

Musisz ponownie uruchomić lakier po każdej zmianie.

Problemy związane z Magento

Zwykle dotyczą niektórych uprawnień do plików. Aby znaleźć dokładny problem, musisz pominąć lakierowanie i bezpośrednio odwiedzić serwer WWW – http://your_domain.com : {web_server_port } /. Następnie możesz włączyć tryb programisty Magento w konsoli za pomocą polecenia ./bin/magento deploy:mode:set developer i odkomentować ini_set("display_errors", 1); wiersz w app/bootstrap.php. Po tych wszystkich czynnościach powinieneś zobaczyć dokładny komunikat o błędzie

Komentarze

  • Zaktualizowałem oryginalny post 1, 2, 3, 4, sprawdź, dziękuję ty
  • Masz fragment magento2 w adresie URL. Po prostu dodaj magento2 / prefiks do wszystkich względnych ścieżek w pliku vcl. Na przykład. probe_url = domain.com/magento2/pub/health_check. Upewnij się również, że zmieniłeś pamięć podręczną strony na lakier w panelu administracyjnym magento
  • , ale dodano http: // motyw wygląda na coś złego bez css. I nie, moje magento w public_html, domain.com/magento2 < -jest na przykład. Co masz na myśli? przełączyć pamięć podręczną strony na lakierowanie w panelu administracyjnym Magento? to jest zarządzanie pamięcią podręczną? dziękuję
  • przepraszam, co to jest zmiana pamięci podręcznej strony na lakier w panelu administracyjnym magento? to jest zarządzanie pamięcią podręczną? dziękuję
  • To ustawienie znajduje się w Sklepach – > Konfiguracja – > Zaawansowane – > System – > Cache całej strony. Nie ma potrzeby podawania http przed ścieżkami. Zamiast tego powinna to być ścieżka względna do Magento.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *