Varnish – Error 503 Error en la recuperación del backend

Recibo este error, ¿cómo puedo hacerlo? Intento editar muchas veces, pero sigo sin funcionar.

Error 503 Falló la recuperación del backend
Falló la recuperación del backend

Meditación del gurú :
XID: 35

Servidor de caché de barniz

Mi CentOS 7: /etc/varnish/varnish.params

# Descripción de la configuración del entorno de Varnish. Esto se derivó de # la configuración de sysconfig / defaults de estilo antiguo

# Establezca esto en 1 para que systemd reload intente cambiar VCL sin reiniciar. RELOAD_VCL = 1

# Archivo de configuración principal. Probablemente quieras cambiarlo. VARNISH_VCL_CONF = / etc / varnish / default.vcl

# Dirección y puerto predeterminados para enlazar. La dirección en blanco significa todas las interfaces IPv4 # e IPv6; de lo contrario, especifique un nombre de host, un número cuádruple de puntos IPv4 o una dirección IPv6 entre paréntesis. # VARNISH_LISTEN_ADDRESS = 192.168.1.5 VARNISH_LISTEN_PORT = 80

# Puerto y dirección de escucha de la interfaz de administración VARNISH_ADMIN_LISTEN_ADDRESS = 127.0.0.1 VARNISH_ADMIN_LISTEN_PORT = 6082

# Archivo secreto para la interfaz de administración EC / Shared VARNISH_ILE varnish / secret

# Especificación de almacenamiento backend, consulte Tipos de almacenamiento en la página man de varnishd (5) # para obtener más detalles. VARNISH_STORAGE = «malloc, 1024M»

# Usuario y grupo para los procesos de trabajo barnizados VARNISH_USER = barniz VARNISH_GROUP = barniz

# Otras opciones, ver la página de manual 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 «

actualización:

1) Sí, el archivo vcl generado por Magento.

2)

tcp 0 0 0.0.0.0:80 0.0.0.0:* ESCUCHA 4338 / varnishd

tcp 0 0127.0.0.1:6082 0.0.0.0:* ESCUCHAR 4337 / varnishd

tcp6 0 0 ::: 80 ::: * ESCUCHAR 4338 / varnishd

tcp6 0 0 ::: 8080 ::: * LISTEN 3905 / httpd

3) i en vcl edited agregué http: // porque cuando solo i / pub / health_check.php será 503, pero agregado http: // el tema parece algo incorrecto, no css.

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

4) utilicé este comando

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

mostrar esto, pero no sé si funciona o no funciona, porque El directorio var / page_cache / no está vacío. el archivo mage-tags todavía está aquí.

< 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 < Edad: 0 Edad: 0 <

X-Magento-Cache-Debug: MISS

X -Magento-Cache-Debug: MISS

Comentarios

  • no puedes conectarte al backend. deje ‘ s editar el archivo /etc/varnish/default.vcl. Busque la línea .url = » /pub/health_check.php», luego cámbielo .url = » / «; o .url = » /health_check.php»;

Respuesta

Después de compararlo con /etc/varnish/default.vcl, encontré después de eliminar el .probe en el backend predeterminado puede resolver esto. Todavía me pregunto por qué la sonda provocó que

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; } } 

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

Actualizado:

Simplemente cambie la siguiente línea:

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

para

.url = "/health_check.php"; 

resuelto el problema, consulte este artículo https://www.sohaib.com/magento-2-12-varnish-error-503-backend-fetch-failed-solved-php-7-1-nginx-varnish-5-x/

Respuesta

Hay algunas posibilidades de error. Sigo este tutorial (Solución 2) y soluciono con éxito el error: https://magentip.com/magento-2-error-503-backend-fetch-failed-with-varnish-cache/

1. La longitud de las etiquetas de caché utilizadas por Magento excede el valor predeterminado de Varnish

Cambiaremos el valor de http_resp_hdr_len en el archivo de configuración de Varnish . (Longitud máxima de cualquier encabezado de respuesta de backend HTTP

La ruta al archivo de configuración de barniz es

-Ubuntu: / etc / default / varnish

-Centos 6: / etc / sysconfig / varnish

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

cambie el valor http_resp_hdr_len (ubicado en la línea 101 después de thread_pool_max) a

-p http_resp_hdr_len=70000 \ 

Además, cambie http_resp_size a

-p http_resp_size=100000 \ 

2. Ubicación incorrecta de health_check.php en el archivo de configuración de Varnish

Vaya al archivo de configuración de Varnish (/etc/varnish/default.vcl) y busque estas líneas

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

Cámbielo a

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

Comentarios

  • Cambiar http_resp_hdr_len y http_resp_size en la configuración de init systemd (/lib/systemd/system/varnish.service) funcionó para mí. ¡Gracias!

Respuesta

Los errores «Error 503 Backend fetch failed» generalmente significan dos cosas:

  • Varnish no puede obtener la respuesta de Magento debido a problemas de configuración
  • Hay un problema en el lado de Magento. Magento envía un código de respuesta HTTP 5xx.

Problemas de configuración de Varnish

Hay muchos problemas de configuración, pero los más comunes son:

  • se utiliza el archivo default.vcl predeterminado. Asegúrese de tomar el archivo vcl generado por Magento
  • backend incorrecto especificado en el archivo vcl. Verifique el puerto y la dirección IP especificados en el archivo vcl. Encontré netstat -tnulp herramienta útil para verificar los servicios en ejecución y sus puertos
  • Su instancia de Magento no está en web_root. Verifique cada ruta relativa en el archivo vcl y agregue los prefijos correspondientes (archivo de verificación de estado, archivos multimedia …).

Debe reiniciar el barniz después de cada cambio.

Problemas relacionados con Magento

Por lo general, se trata de algunos permisos de archivos. Para encontrar el problema exacto, debe omitir el barniz y visitar el servidor web directamente: http://your_domain.com : {web_server_port } /. Luego, puede activar el modo de desarrollador de Magento en la consola usando el comando ./bin/magento deploy:mode:set developer y descomentar la línea ini_set("display_errors", 1); en app/bootstrap.php. Después de todas estas acciones, debería ver el mensaje de error exacto

Comentarios

  • Actualicé la publicación original 1, 2, 3, 4, verifique, gracias usted
  • Tiene un fragmento de magento2 en la URL. Simplemente agregue magento2 / prefix a todas las rutas relativas en el archivo vcl. P.ej. probe_url = dominio.com/magento2/pub/health_check. Además, asegúrese de cambiar la caché de la página a barniz en el panel de administración de magento
  • pero agregó http: // el tema parece algo incorrecto, no css. Y no, mi magento en public_html, domain.com/magento2 < -es por ejemplo. ¿Qué quieres decir? ¿Cambiar la caché de la página a barnizar en el panel de administración de magento? Qué es la gestión de caché? gracias
  • perdón, ¿qué es cambiar la caché de la página a barnizar en el panel de administración de magento? Qué es la gestión de caché? gracias
  • La configuración se encuentra en Tiendas – > Configuración – > Avanzado – > Sistema – > Caché de página completa. No es necesario especificar http antes de las rutas. En cambio, debería ser la ruta relativa a Magento.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *