Question quel est l'emplacement nginx ~ * et ~


J'essaie de comprendre un peu mieux nginx et d'essayer de former un regex où chaque URL qui ne correspond PAS à / api / postdataV1 est routée vers un autre cluster de serveurs. Je continue à voir ces deux choses dans des exemples sans explication

location ~ {some regex}

location ~* (some regex}

Ma première question est de savoir quelles sont ces ~ et ~ * (je pense que le ~ signifie simplement que je spécifie une regex?) Mais qu'en est-il de ~ * alors?

Je pense que ce que je veux est ceci. Cela serait-il correct?

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

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

Cela serait-il correct? mais qu'en est-il du ~ * ... Je ne comprends pas celui-là

Merci, doyen


10
2017-09-26 14:34


origine


le wiki vaut toujours le coup d’oeil en premier. - that guy from over there
J'avais jeté un coup d'œil à la documentation, mais je n'avais pas trouvé les bons liens et je me suis retrouvé sur la page de documentation de "location", qui devrait contenir cette information mais ne l'a pas trouvée. (Le wiki dont je me souviens m'a référé à la documentation comme étant la plus récente). - Dean Hiller
je voudrais google nginx location, le premier coup est ce :) mais je dois admettre qu’il faut s’habituer à la documentation de nginx, en particulier. trouver le bon matériel ci-dessous modules-section. - that guy from over there
ma première page google utilisant votre requête de recherche correspondait exactement à ce que j'avais lu la première fois ... wiki.nginx.org/HttpCoreModule En rouge, l'article indique que l'article est obsolète, ce qui m'amène à une autre page (vous devez connaître les résultats de Google différents en fonction de votre identité, si vous êtes connecté et du serveur que vous avez touché). Je ne suis pas parvenu à la page indiquée ci-dessous qui a basculé avec Google et lisant autour de vous :( !!! - Dean Hiller


Réponses:


Comme indiqué dans la documentation nginx http://nginx.org/en/docs/http/ngx_http_core_module.html#location ~ * Les expressions rationnelles sont pour une correspondance insensible à la casse et ~ sont pour une sensibilité.

Votre syntaxe est correcte, mais elle peut être réécrite sans regex (le plus court emplacement vient en dernier dans la correspondance de requête):

location /api/postdata {
}

location / {
}

11
2017-09-26 15:07



ah, cool ... ouais, j'ai essayé de googler ~ * mais google n'indexe pas trop 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 bogue: D - Yarek T