Ich erhalte diesen Fehler. Wie kann ich das tun? Ich versuche viele Male zu bearbeiten, aber es funktioniert immer noch nicht.
Fehler 503 Backend-Abruf fehlgeschlagen
Backend-Abruf fehlgeschlagenGuru-Meditation :
XID: 35
Lack-Cache-Server
Mein CentOS 7: /etc/varnish/varnish.params
# Beschreibung der Lackumgebungskonfiguration. Dies wurde aus # den alten Sysconfig / Defaults-Einstellungen abgeleitet.
# Setzen Sie dies auf 1, damit systemd reload versucht, VCL ohne Neustart zu wechseln. RELOAD_VCL = 1
# Hauptkonfigurationsdatei. Sie möchten es wahrscheinlich ändern. VARNISH_VCL_CONF = / etc / varnish / default.vcl
# Standardadresse und Port zum Binden. Leere Adresse bedeutet alle IPv4 # – und IPv6-Schnittstellen. Andernfalls geben Sie einen Hostnamen, ein gepunktetes IPv4 # -Quad oder eine IPv6-Adresse in Klammern an. # VARNISH_LISTEN_ADDRESS = 192.168.1.5 VARNISH_LISTEN_PORT = 80
# Abhöradresse und Port der Administratorschnittstelle VARNISH_ADMIN_LISTEN_ADDRESS = 127.0.0.1 VARNISH_ADMIN_LISTEN_PORT = 6082
lack / secret
# Backend-Speicherspezifikation, siehe Speichertypen in der Manpage varnishd (5) # für Details. VARNISH_STORAGE = „malloc, 1024M“
# Benutzer und Gruppe für die Lackierprozesse VARNISH_USER = Lack VARNISH_GROUP = Lack
# Weitere Optionen finden Sie in der Manpage varnishd (1) DAEMON_OPTS = „-a: 80 -T localhost: 6082 -f /etc/varnish/default.vcl -S / etc / varnish / secret -s malloc, 1024 m -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 „
Update:
1) Ja, die vcl-Datei wurde generiert von Magento.
2)
tcp 0 0 0.0.0.0:80 0.0.0.0:* HÖREN 4338 / lackn
tcp 0 0 127.0.0.1:6082 0.0.0.0:* LISTEN 4337 / varnishd
tcp6 0 0 ::: 80 ::: * LISTEN 4338 / varnishd
tcp6 0 0 ::: 8080 ::: * LISTEN 3905 / httpd
3) i in vcl bearbeitet hinzugefügt http: // beacuse, wenn ich nur / pub / health_check.php wird 503 sein, aber http: // hinzugefügt. Das Thema sieht aus wie etwas Falsches, kein CSS.
.probe = {. url = „ http://example.com/pub/health_check.php „;
4) Ich habe diesen Befehl verwendet
curl -I -v –location-trusted „ http://example.com „
zeigen dies, aber ich weiß nicht, ob es funktioniert oder nicht, weil Das Verzeichnis var / page_cache / ist nicht leer. Die Magier-Tags-Datei ist noch hier.
< X-Magento-Cache-Steuerung: maximales Alter = 0, muss erneut validiert werden, kein Cache, kein Speicher
X-Magento-Cache-Kontrolle: max-age = 0, muss erneut validiert werden, kein Cache, kein Speicher < Alter: 0 Alter: 0 <
X-Magento-Cache-Debug: MISS
X. -Magento-Cache-Debug: MISS
Kommentare
- Sie können keine Verbindung zum Backend herstellen. Lassen Sie ‚ die Datei /etc/varnish/default.vcl bearbeiten. Suchen Sie die Zeile .url = “ /pub/health_check.php“ und ändern Sie sie .url = “ / „; oder .url = “ /health_check.php“;
Antwort
Nach dem Vergleich mit /etc/varnish/default.vcl fand ich nach dem Entfernen der .probe im Backend-Standard kann dies beheben. Ich frage mich immer noch, warum die Sonde diese
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; } }
zu
backend default { .host = "127.0.0.1"; .port = "8080"; .first_byte_timeout = 600s; }
Aktualisiert:
Ändern Sie einfach die folgende Zeile:
.url = "/pub/health_check.php";
bis
.url = "/health_check.php";
hat das Problem gelöst. Weitere Informationen finden Sie in diesem Artikel. https://www.sohaib.com/magento-2-12-varnish-error-503-backend-fetch-failed-solved-php-7-1-nginx-varnish-5-x/
Antwort
Es gibt einige Möglichkeiten für Ihren Fehler. Ich folge diesem Tutorial (Lösung 2) und behebe den Fehler erfolgreich: https://magentip.com/magento-2-error-503-backend-fetch-failed-with-varnish-cache/
1. Die Länge der von Magento verwendeten Cache-Tags überschreitet den Standardwert von Varnish.
Wir ändern den Wert http_resp_hdr_len
in der Varnish-Konfigurationsdatei . (Maximale Länge eines HTTP-Backend-Antwortheaders
Der Pfad zur Lackkonfigurationsdatei lautet
-Ubuntu: / etc / default / varnish
-Centos 6: / etc / sysconfig / varnish
-Centos 7: / etc / varnish / varnish.Parameter
ändern den Wert http_resp_hdr_len
(in Zeile 101 nach thread_pool_max
) in
-p http_resp_hdr_len=70000 \
Ändern Sie außerdem http_resp_size
in
-p http_resp_size=100000 \
2. Falscher Speicherort health_check.php in der Lackkonfigurationsdatei
Gehen Sie zur Lackkonfigurationsdatei (/etc/varnish/default.vcl) und suchen Sie diese Zeilen
.probe = { .url = "/pub/health_check.php";
Ändern Sie es in
.probe = { .url = "/health_check.php";
Kommentare
- Das Ändern von http_resp_hdr_len und http_resp_size in der Konfiguration von init systemd (/lib/systemd/system/varnish.service) hat bei mir funktioniert. Danke!
Antwort
„Fehler 503 Fehler beim Abrufen des Backends fehlgeschlagen“ Fehler bedeuten normalerweise zwei Dinge:
- Varnish kann die Antwort von Magento aufgrund von Konfigurationsproblemen nicht abrufen.
- Auf Magento-Seite liegt ein Problem vor. Magento sendet 5xx HTTP-Antwortcode.
Lackkonfigurationsprobleme
Es gibt eine Reihe von Konfigurationsproblemen, aber die häufigsten sind:
- Standardmäßig wird die Datei default.vcl verwendet. Stellen Sie sicher, dass Sie die von Magento
- generierte vcl-Datei verwenden, die in der vcl-Datei angegeben ist. Überprüfen Sie den in der vcl-Datei angegebenen Port und die IP-Adresse. Ich fand
netstat -tnulp
ein nützliches Tool, um die ausgeführten Dienste und ihre Ports zu überprüfen. - Ihre Magento-Instanz befindet sich nicht in web_root. Überprüfen Sie jeden relativen Pfad in der vcl-Datei und fügen Sie entsprechende Präfixe hinzu (Integritätsprüfungsdatei, Mediendateien …).
Sie müssen den Lack nach jeder Änderung neu starten.
Magento-bezogene Probleme
In der Regel handelt es sich um einige Dateiberechtigungen. Um das genaue Problem zu finden, müssen Sie den Lack überspringen und den Webserver direkt besuchen – http://your_domain.com : {web_server_port } /. Anschließend können Sie den Magento-Entwicklermodus in der Konsole mit dem Befehl ./bin/magento deploy:mode:set developer
aktivieren und die Zeile ini_set("display_errors", 1);
in app/bootstrap.php
. Nach all diesen Aktionen sollte die genaue Fehlermeldung angezeigt werden.
Kommentare
- Ich habe den ursprünglichen Beitrag 1,2,3,4 aktualisiert. Bitte überprüfen Sie, danke Sie
- Sie haben einen magento2-Block in der URL. Fügen Sie einfach magento2 / prefix zu allen relativen Pfaden in der vcl-Datei hinzu. Z.B. probe_url = domain.com/magento2/pub/health_check. Stellen Sie außerdem sicher, dass Sie den Seiten-Cache im Magento-Admin-Bereich
- auf Lack umstellen, aber http: // hinzugefügt haben. Und nein, mein Magento in public_html, domain.com/magento2 < -ist zum Beispiel. Was meinst du? Seiten-Cache im Magento-Admin-Panel auf Lack umstellen? ist Cache-Verwaltung? danke
- Entschuldigung, was ist der Switch-Page-Cache, der im Magento-Admin-Panel lackiert werden soll? ist Cache-Verwaltung? danke
- Die Einstellung befindet sich in Stores – > Konfiguration – > Erweitert – > System – > Ganzseiten-Cache. Es ist nicht erforderlich, http vor Pfaden anzugeben. Stattdessen sollte es der relative Pfad zu Magento sein.