qu'est-ce que l'emplacement nginx ~ * et ~

15

J'essaie de comprendre un peu mieux nginx et d'essayer de former une expression régulière où chaque URL qui ne correspond pas /api/postdataV1est acheminée vers un cluster de serveurs différent. Je continue de voir ces deux choses dans des exemples sans explication

location ~ {some regex}

location ~* (some regex}

Ma première question est de savoir ce que c'est ~et ~*(je pense ~que c'est juste que je spécifie une expression régulière?) Mais qu'en est-il ~*alors?

Ce que je pense, c'est ce que je veux. Serait-ce correct?

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

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

Serait-ce correct? mais qu'en est-il de ~*... je ne comprends pas celui-là

merci, Dean

Dean Hiller
la source
le wiki vaut toujours le coup d'œil en premier.
ce mec de là-bas
1
J'avais parcouru les documents, mais je n'ai tout simplement pas trouvé les bons liens et je me suis retrouvé sur la page de documentation pour "emplacement", qui devrait vraiment contenir ces informations, mais pas. (le wiki dont je me souviens m'a renvoyé à la documentation comme étant la plus récente).
Dean Hiller
je google nginx location, le premier coup est ceci :) mais je dois admettre, on doit s'habituer à la documentation nginx, esp. trouver le bon truc sous la section modules.
ce gars là-bas
1
ma première page google utilisant votre requête de recherche était exactement ce que j'ai lu la première fois ... wiki.nginx.org/HttpCoreModule qui en ROUGE dit que l'article est obsolète me menant à une autre page (vous devez savoir que google yeilds différents résultats basés sur sur qui vous êtes, si vous êtes connecté et sur quel serveur vous finissez par frapper). Je ne suis pas du tout arrivé à la page ci-dessous qui a basculé en utilisant Google et en lisant :( !!!
Dean Hiller

Réponses:

16

Comme indiqué dans la documentation de nginx , l' ~*expression régulière est pour la correspondance insensible à la casse et ~est sensible à la casse.

Votre syntaxe est correcte, mais elle peut être réécrite sans regex (l'emplacement le plus court passe en dernier dans la correspondance des demandes):

location /api/postdata {
}

location / {
}
Andrei Mikhaltsov
la source
1
ah, cool ... ouais, j'ai essayé de googler ~ * mais google n'indexe pas trop bien les caractères spéciaux (dommage que nginx n'ait pas utilisé de directives à la place car j'aurais probablement atterri directement sur cette page)
Dean Hiller
@DeanHiller On dirait que Google a corrigé ce bug: D
Yarek T
Votre réponse pourrait ne pas être correcte car /api/PostDataelle ne correspondra pas sans~*
Devy