Solución del error de configuración de Nginx que provoca TOO_MANY_REDIRECTS

DEMASIADOS_REDIRECCIONAMIENTOS(Demasiadas redirecciones) es un error común en los sitios web. Este problema afecta al acceso de los usuarios y a los resultados SEO. En este artículo, vamos a explicar las ideas de solución de problemas y soluciones para TOO_MANY_REDIRECTS causados por una mala configuración de Nginx.

Imagen [1]-Solución de problemas TOO_MANY_REDIRECTS debido a una mala configuración de Nginx

1. Principio de error TOO_MANY_REDIRECTS

navegador (software)Al acceder a un sitio web, si el servidor tiene mal configuradas las reglas de redirección, provocando que las peticiones se envíen en múltiples URL El navegador devolverá finalmente un error TOO_MANY_REDIRECTS para evitar un bucle muerto.

Rendimiento común:

  • La carga de la página falla con ERR_TOO_MANY_REDIRECTS
  • F12 Herramientas para desarrolladores Panel de red muestra redirecciones 301 o 302 duplicadas

2. Preparativos previos al examen

Antes de solucionar el problema, confirme la siguiente información:

  • Nombre de dominio utilizado para el sitio (¿hay una mezcla de www y no www)
  • Si SSL (HTTPS) está configurado o no
  • Tanto si utiliza el CDN o un proxy inverso (por ejemplo, Cloudflare)

3. Causas comunes de errores de redirección con la configuración de Nginx

3.1 Configuración de conflictos HTTP y HTTPS

Si también configuras HTTP para saltar automáticamente a HTTPS, y la configuración HTTPS salta de nuevo a HTTP, crearás un bucle infinito.

Imagen [2]-Solución de problemas TOO_MANY_REDIRECTS debido a una mala configuración de Nginx

Ejemplo de error típico:

servidor {
    listen 80; nombre_servidor ejemplo.com; nombre_servidor
    nombre_servidor ejemplo.com; return 301 ; Error #
    return 301 http://example.com$request_uri; # error: saltar a http
}

servidor {
    listen 443 ssl; nombre_servidor ejemplo.com; return 301 ; # error
    nombre_servidor ejemplo.com; nombre_servidor; nombre_servidor ejemplo.com; nombre_servidor ejemplo.com; nombre_servidor ejemplo.com
    return 301 https://example.com$request_uri; } servidor { listen 443 ssl; nombre_servidor ejemplo.com; return 301 https://example.com$request_uri; }
}

Esta configuración redirige las peticiones HTTP a HTTP (ella misma) y las peticiones HTTPS a HTTPS (ella misma) y no completa el salto esperado HTTP -> HTTPS.

3.2 Desconfiguración de las redirecciones www y no www

También se generan TOO_MANY_REDIRECTS cuando saltan www y no www.

Ejemplo de configuración errónea:

servidor {
    nombre_servidor ejemplo.com.
    return 301 http://www.example.com$request_uri;
}

servidor {
    nombre_servidor www.example.com; return 301 www.example.com; } servidor { nombre_servidor www.example.com; }
    return 301 http://example.com$request_uri; } servidor { nombre_servidor http://example.com$request_uri; }
}

Esta configuración provoca:

  • Visite example.com Vaya a www.example.com
  • Entrando en www.example.com volvemos a ejemplo.com
  • bucle infinito

3.3 Conflictos de configuración entre proxy inverso y HTTPS

Se utilizó Cloudflare,pagodaDespués de que el proxy inverso o CDN, si usted no tiene el derecho X-Forwarded-Proto Con este parámetro, Nginx puede malinterpretar el protocolo URL (HTTPS como HTTP), dando lugar a un error de salto de página.

Solución:

Añádelo en el archivo de configuración:

El archivo de configuración suele estar en una de las siguientes ubicaciones:

  • nginx / abrir nginx.conf (el archivo de configuración principal, no se recomienda editar el bloque del servidor directamente)
Imagen [3]-Solución de problemas TOO_MANY_REDIRECTS debido a una mala configuración de Nginx
servidor {
    listen 80; nombre_servidor ejemplo.com ;
    nombre_servidor ejemplo.com www.example.com;

    ¡set $https_off ""; if ($http_x_forwarded_proto !
    ¡si ($http_x_forwarded_proto ! = "https") {
        set $https_off "redirect";
    }
    if ($https_off = "redirect") {
        return 301 https://$host$request_uri;
    }
}

O utiliza el método estándar:

servidor {
    listen 80; nombre_servidor ejemplo.com ;
    nombre_servidor ejemplo.com www.example.com; return 301 www.example.com;
    return 301 https://$host$request_uri;
}

Añádalo a la configuración HTTPS:

servidor {
    listen 443 ssl; nombre_servidor ejemplo.com ;
    nombre_servidor ejemplo.com www.example.com;
    # Configuración del certificado SSL...
}

Además, en la configuración global de Nginx fastcgi_params archivo o segmento del servidor:

fastcgi_param HTTPS activado.

Asegúrese de que el proxy inverso pasa información HTTPS.

4. Proceso sistemático de resolución de problemas

A continuación se indican los pasos recomendados para la resolución de problemas TOO_MANY_REDIRECTS:

  • Compruebe el panel Red de su navegador
    Observe el enlace de salto y confirme si se trata de un bucle entre HTTP y HTTPS o entre www y no www.
  • Ver el archivo de configuración de Nginx
    • ¿Existe una configuración duplicada de múltiples server_names?
    • ¿La devolución 301 apuntando al mismo nombre de dominio está causando un bucle?
  • Confirmación de la configuración del proxy inverso Si utiliza Cloudflare, asegúrese de que "Modo SSL/TLS" está seleccionado. Completo (estricto)para evitar los bucles provocados por el modo Flexible.
  • comprobar WordPress u otros ajustes del CMS Si la URL del sitio web está configurada como HTTP, pero el servidor está configurado para forzar HTTPS, esto también puede dar lugar a saltos duplicados.
Imagen [4]-Solución de problemas TOO_MANY_REDIRECTS debido a una mala configuración de Nginx
  • Borrar cachés de navegador y CDN A veces se ha cambiado la configuración pero la caché no se ha actualizado y sigue mostrando el error antiguo.

resúmenes

TOO_MANY_REDIRECTS Sí Nginx La clave de los problemas habituales de configuración Evitar bucles de redireccionamientoEl siguiente es un ejemplo de un error que puede resolverse comprobando HTTP frente a HTTPS. La comprobación de las configuraciones HTTP frente a HTTPS, www frente a no www, junto con la solución de problemas de configuración del servidor web, CDN y aplicaciones, puede resolver este tipo de errores.


Contacte con nosotros
¿No puede leer el tutorial? Póngase en contacto con nosotros para obtener una respuesta gratuita. Ayuda gratuita para sitios personales y de pequeñas empresas
Servicio de atención al cliente WeChat
Servicio de atención al cliente WeChat
Tel: 020-2206-9892
QQ咨询:1025174874
(iii) Correo electrónico: info@361sale.com
Horario de trabajo: de lunes a viernes, de 9:30 a 18:30, días festivos libres
© Declaración de reproducción
Autor : linxiulian
EL FIN
Si le gusta, apóyela.
felicitaciones110 compartir (alegrías, beneficios, privilegios, etc.) con los demás
comentarios compra de sofás

Por favor, inicie sesión para enviar un comentario

    Sin comentarios