Revisar bloques Nginx y reglas location

Pega una configuración para revisarla y prueba una ruta contra las reglas location. El comparador aplica el orden de Nginx: coincidencia exacta, después el prefijo más largo y por último las expresiones regulares; la ruta se normaliza igual que en Nginx.

Se ejecuta localmente en tu navegador
Esta herramienta procesa todos los datos localmente en tu navegador.
Configuración NginxPega uno o varios bloques server; no se contacta ningún host.

Cómo revisar un bloque de Nginx y una ruta

Nginx elige la regla location que atiende una petición en un orden fijo: primero la coincidencia exacta con =, después el prefijo coincidente más largo y por último las expresiones regulares en el orden en que aparecen. El comparador sigue ese mismo orden y normaliza la ruta igual que Nginx, así que el resultado es la regla que usaría Nginx.

El informe sigue siendo una ayuda de revisión. Solo lee el texto pegado, y nginx -t en la máquina que sirve el sitio sigue siendo la referencia sobre si el archivo carga.

  1. Pega uno o varios bloques server, o pulsa Cargar ejemplo para partir de una configuración que ya funciona.
  2. Pulsa Comprobar configuración y lee el informe; el análisis no sale de este navegador.
  3. Escribe una ruta como /api/projects/42 y pulsa Buscar location para ver qué regla responde y por qué.
  4. Cambia el bloque, vuelve a comprobarlo y confirma el archivo con nginx -t antes de recargar el servidor.

Prioridad de location, comillas y vista previa de la ruta

Cómo elige Nginx un bloque location

Una coincidencia exacta como location = /health gana de inmediato. Si no la hay, se recuerda el prefijo coincidente más largo; cuando ese prefijo lleva ^~, las expresiones regulares se omiten y responde el prefijo.

Sin ^~, las expresiones regulares se prueban en el orden en que aparecen y gana la primera que coincide; si ninguna coincide, responde el prefijo recordado. Los bloques location anidados dentro de un prefijo se buscan igual, y por eso un ^~ o una expresión regular anidados pueden adelantar a una regla escrita más abajo.

Qué revisa el informe

El informe señala llaves o comillas sin equilibrar, la ausencia de un bloque server, la falta de server_name, un listener en el puerto 80 sin una redirección return 30x evidente, proxy_pass sin proxy_set_header Host y proxy_pass sin X-Forwarded-For ni X-Forwarded-Proto. El puerto 80 se reconoce en las formas 80, *:80, 0.0.0.0:80 y [::]:80.

También avisa de patrones location con llaves sin comillas: Nginx no carga un archivo como location ~ ^/p/[0-9]{3}$ { } y falla con unknown directive. Cuando las comprobaciones pasan, el informe lo dice en lugar de inventar un problema.

Comillas, escapes y la vista previa de la ruta

Entrecomilla la expresión regular cuando contenga llaves: location ~ "^/p/[0-9]{3}$" { } carga, la forma sin comillas no. La vista previa descodifica los escapes de porcentaje, une barras repetidas y resuelve . y .., de modo que /a//b, /a/./b y /a/x/../b llegan a location = /a/b.

La comparación distingue mayúsculas salvo en las reglas con ~*. Los bloques con nombre (location @nombre) se listan pero nunca se eligen a partir de una ruta, y directivas como rewrite, try_files o error_page no se siguen, así que toma el resultado como el primer paso de enrutado que hace Nginx.

Herramientas recientes: