¿Cuál es la ubicación nginx ~ * y ~

15

Estoy tratando de entender nginx un poco mejor y tratando de formar una expresión regular donde cada url que NO coincide /api/postdataV1se enruta a un grupo diferente de servidores. Sigo viendo estas dos cosas en ejemplos sin explicación

location ~ {some regex}

location ~* (some regex}

Mi primera pregunta es qué son estos ~y ~*(creo que ~solo significa que estoy especificando una expresión regular), pero ¿qué pasa ~*entonces?

Lo que creo que lo que quiero es esto. ¿Sería esto correcto?

location ~ ^/api/postdataV1$ {
    #matches to this route to where I want
}

location / {
    #This will be everything except /api/postdataV1 I think
}

¿Sería esto correcto? pero que pasa con el ~*... no entiendo ese

gracias Dean

Dean Hiller
fuente
El wiki siempre vale la pena echarle un vistazo primero.
ese tipo de allá
1
Había revisado los documentos, pero no encontré los enlaces correctos y terminé en la página de documentación de "ubicación" que realmente debería tener esa información, pero no lo hice. (Wiki, según recuerdo, me refirió a la documentación como la más actualizada).
Dean Hiller
buscaría en Google nginx location, el primer éxito es este :) pero debo admitir que uno debe acostumbrarse a la documentación nginx, especialmente. encontrar las cosas correctas debajo de la sección de módulos.
Ese tipo de allá
1
mi primera página de Google usando su consulta de búsqueda fue exactamente lo que leí la primera vez ... wiki.nginx.org/HttpCoreModule que en RED dice que el artículo está obsoleto, lo que me lleva a otra página (debe conocer los resultados de Google Yeilds diferentes sobre quién es usted, si ha iniciado sesión y en qué servidor termina golpeando). No llegué a la página que se muestra a continuación, que se sacudió usando Google y leyendo :( !!!
Dean Hiller

Respuestas:

16

Como se indica en la documentación de nginx , ~*regex es para la coincidencia entre mayúsculas y minúsculas y ~para mayúsculas y minúsculas.

Su sintaxis está bien, pero puede reescribirse sin expresiones regulares (la ubicación más corta es la última en la coincidencia de solicitudes):

location /api/postdata {
}

location / {
}
Andrei Mikhaltsov
fuente
1
ah, genial ... sí, traté de buscar en Google ~ * pero google no indexa caracteres especiales demasiado bien (lástima que nginx no usara directivas ya que probablemente habría aterrizado en esa página)
Dean Hiller
@DeanHiller Parece que Google solucionó ese error: D
Yarek T
Su respuesta podría no ser correcta ya /api/PostDataque no coincidirá sin~*
Devy