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.