Tengo problemas para comprender las ubicaciones anidadas en nginx. Tengo dos ubicaciones con algunas directivas de configuración en común, por lo que en lugar de repetir las directivas, preferiría repetir el URI usando una expresión regular:
location ~ /a|/b {
location /a {
}
location /b {
}
}
Sin embargo, esto da el error
nginx: [emerg] location "/a" is outside location "/a|/b" in /etc/nginx/nginx.conf:36
Sin |
embargo, sin el o parece estar bien.
location ~ /a {
location /a {
}
}
¿Qué estoy haciendo mal? ¿Hay una mejor manera de hacer esto sin repetir nada? ¿Puedo agrupar ubicaciones de otra manera?
Respuestas:
Antigua pregunta, pero el problema es porque la ubicación principal es una ubicación de expresiones regulares, mientras que las ubicaciones anidadas son ubicaciones de prefijo.
Solo puede definir ubicaciones de prefijo anidadas cuando la ubicación principal también es una ubicación de prefijo:
Cuando una ubicación principal se define mediante una expresión regular, cualquier ubicación anidada también debe definirse mediante expresiones regulares:
Sin embargo, también puede definir ubicaciones de expresiones regulares anidadas cuando la ubicación principal es una ubicación de prefijo:
fuente
/b
arrojará un error?location /a { }
omite la repetitiva, ¿importa el orden?