Ricevo questo errore come posso fare? provo a modificare molte volte ma continuo a non funzionare.
Errore 503 Recupero backend non riuscito
Recupero backend non riuscitoMeditazione guru :
XID: 35
Server cache Varnish
Il mio CentOS 7: /etc/varnish/varnish.params
# Descrizione della configurazione dellambiente Varnish. Questo è stato derivato # dalle impostazioni del vecchio stile sysconfig / defaults
# Impostalo a 1 per fare in modo che systemd ricarichi provi a cambiare VCL senza riavvio. RELOAD_VCL = 1
# File di configurazione principale. Probabilmente vorrai cambiarlo. VARNISH_VCL_CONF = / etc / varnish / default.vcl
# Indirizzo predefinito e porta a cui collegarsi. Indirizzo vuoto indica tutte le interfacce IPv4 # e IPv6, altrimenti specificare un nome host, un # quad punteggiato IPv4 o un indirizzo IPv6 tra parentesi. # VARNISH_LISTEN_ADDRESS = 192.168.1.5 VARNISH_LISTEN_PORT = 80
# Porta e indirizzo di ascolto dellinterfaccia di amministrazione VARNISH_ADMIN_LISTEN_ADDRESS = 127.0.0.1 VARNISH_ADMIN_LISTEN_PORT = 6082
# File segreto condiviso per linterfaccia di amministrazione VARNISH_SILE = ecc. varnish / secret
# Specifiche di archiviazione backend, vedere Tipi di archiviazione nella pagina man di varnishd (5) # per i dettagli. VARNISH_STORAGE = “malloc, 1024M”
# Utente e gruppo per i processi di lavoro di varnishd VARNISH_USER = varnish VARNISH_GROUP = varnish
# Altre opzioni, vedere la pagina man 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 “
update:
1) Sì, il file vcl generato di Magento.
2)
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4338 / varnishd
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) Ho in vcl modificato aggiunto http: // perché solo quando ho / pub / health_check.php sarà 503, ma aggiunto http: // il tema sembra qualcosa di sbagliato senza CSS.
.probe = {. url = “ http://example.com/pub/health_check.php “;
4) ho usato questo comando
curl -I -v –location-trusted “ http://example.com “
mostra questo, ma non so che funzioni o non funzioni, perché il La directory var / page_cache / non è vuota. il file mage-tags è ancora qui.
< 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 < Età: 0 Età: 0 <
X-Magento-Cache-Debug: MISS
X -Magento-Cache-Debug: MISS
Commenti
- non puoi connetterti al backend. lascia che ‘ modifichi il file /etc/varnish/default.vcl. Trova la riga .url = ” /pub/health_check.php”, quindi modificala .url = ” / “; o .url = ” /health_check.php”;
Risposta
Dopo aver confrontato con /etc/varnish/default.vcl, ho trovato dopo aver rimosso .probe nel backend predefinito può risolvere questo problema. Mi chiedo ancora perché il probe abbia causato questo
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; } }
a
backend default { .host = "127.0.0.1"; .port = "8080"; .first_byte_timeout = 600s; }
Aggiornato:
Basta modificare la seguente riga:
.url = "/pub/health_check.php";
per
.url = "/health_check.php";
ha risolto il problema, fare riferimento a questo articolo https://www.sohaib.com/magento-2-12-varnish-error-503-backend-fetch-failed-solved-php-7-1-nginx-varnish-5-x/
Risposta
Ci sono alcune possibilità per il tuo errore. Seguo questo tutorial (Soluzione 2) e risolvo correttamente lerrore: https://magentip.com/magento-2-error-503-backend-fetch-failed-with-varnish-cache/
1. La lunghezza dei tag della cache utilizzati da Magento supera il valore predefinito di Varnish
Modificheremo il valore http_resp_hdr_len
nel file di configurazione di Varnish . (Lunghezza massima di qualsiasi intestazione di risposta del backend HTTP
Il percorso del file di configurazione di varnish è
-Ubuntu: / etc / default / varnish
-Centos 6: / etc / sysconfig / varnish
-Centos 7: / etc / varnish / varnish.params
modifica il valore http_resp_hdr_len
(situato nella riga 101 dopo thread_pool_max
) in
-p http_resp_hdr_len=70000 \
Inoltre, modifica http_resp_size
in
-p http_resp_size=100000 \
2. Posizione health_check.php errata nel file di configurazione di Varnish
Vai al file di configurazione di Varnish (/etc/varnish/default.vcl) e trova queste righe
.probe = { .url = "/pub/health_check.php";
Modificalo in
.probe = { .url = "/health_check.php";
Commenti
- La modifica di http_resp_hdr_len e http_resp_size nella configurazione di init systemd (/lib/systemd/system/varnish.service) ha funzionato per me. Grazie!
Risposta
Gli errori “Errore 503 Recupero backend non riuscito” di solito significano due cose:
- Varnish non è in grado di recuperare la risposta da Magento a causa di problemi di configurazione
- Cè un problema da parte di Magento. Magento invia il codice di risposta HTTP 5xx.
Problemi di configurazione di Varnish
Ci sono un sacco di problemi di configurazione, ma i più comuni sono:
- viene utilizzato il file default.vcl. Assicurati di prendere il file vcl generato da Magento
- backend sbagliato specificato nel file vcl. Verificare la porta e lindirizzo IP specificati nel file vcl. Ho trovato
netstat -tnulp
uno strumento utile per controllare i servizi in esecuzione e le loro porte - La tua istanza Magento non è in web_root. Controlla ogni percorso relativo nel file vcl e aggiungi i prefissi corrispondenti (file di controllo dello stato, file multimediali …).
È necessario riavviare varnish dopo ogni modifica.
Problemi relativi a Magento
Di solito riguardano alcuni permessi dei file. Per trovare il problema esatto, è necessario saltare Varnish e visitare direttamente il server web – http://your_domain.com : {web_server_port } /. Quindi puoi attivare la modalità sviluppatore Magento nella console utilizzando il comando ./bin/magento deploy:mode:set developer
e rimuovere il commento dalla riga ini_set("display_errors", 1);
in app/bootstrap.php
. Dopo tutte queste azioni dovresti vedere il messaggio di errore esatto
Commenti
- Ho aggiornato il post originale 1,2,3,4, controlla, grazie tu
- Hai un blocco magento2 nellURL. Basta aggiungere magento2 / prefix a tutti i percorsi relativi nel file vcl. Per esempio. probe_url = domain.com/magento2/pub/health_check. Inoltre, assicurati di cambiare la cache della pagina in vernice nel pannello di amministrazione di Magento
- ma aggiunto http: // il tema sembra qualcosa di sbagliato senza css. E no, il mio magento in public_html, domain.com/magento2 < -è per esempio. Qual è il tuo significato? cambiare la cache della pagina per verniciare nel pannello di amministrazione di Magento? cosè la gestione della cache? grazie
- scusa cosè cambiare la cache della pagina in vernice nel pannello di amministrazione di Magento? cosè la gestione della cache? grazie
- Limpostazione si trova in Negozi – > Configurazione – > Avanzate – > Sistema – > Cache pagina intera. Non è necessario specificare http prima dei percorsi. Dovrebbe invece essere il percorso relativo a Magento.