qual è la posizione di nginx ~ * e ~


15

Sto cercando di capire un po 'meglio nginx e sto cercando di formare una regex in cui ogni URL che NON corrisponde /api/postdataV1viene instradato a un diverso cluster di server. Continuo a vedere queste due cose negli esempi senza spiegazioni

location ~ {some regex}

location ~* (some regex}

La mia prima domanda è cosa sono questi ~e ~*(penso che il ~giusto significhi che sto specificando una regex?) Ma che dire di ~*allora?

Quello che penso è quello che voglio. Questo sarebbe corretto?

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

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

Questo sarebbe corretto? ma per quanto riguarda ~*... Non capisco quello

grazie Dean


la wiki merita sempre una prima occhiata.
quel tizio di laggiù, il

1
Avevo esaminato i documenti, ma non avevo trovato i collegamenti giusti e sono finito sulla pagina della documentazione per "posizione" che in realtà avrebbe dovuto avere tali informazioni ma non l'aveva fatto. (wiki, per quanto ricordo, mi ha riferito che la documentazione era la più aggiornata).
Dean Hiller,

lo farei google nginx location, il primo colpo è questo :) ma devo ammetterlo, ci si deve abituare alla documentazione di nginx, esp. trovare le cose giuste sotto la sezione moduli.
quel tizio di laggiù il

1
la mia prima pagina di Google che utilizzava la tua query di ricerca era esattamente quello che ho letto la prima volta ... wiki.nginx.org/HttpCoreModule che in ROSSO dice che l'articolo è obsoleto e mi porta a un'altra pagina (devi sapere che Google ottiene risultati diversi in base su chi sei, se hai effettuato l'accesso e su quale server finisci per colpire). Non sono arrivato alla pagina sotto riportata che è scossa usando google e leggendo in giro :( !!!
Dean Hiller

Risposte:


16

Come indicato nella documentazione di nginx , ~*regex è per la corrispondenza senza distinzione tra maiuscole e minuscole e ~per la distinzione tra maiuscole e minuscole.

La tua sintassi è ok, ma può essere riscritta senza regex (la posizione più corta dura l'ultima volta nella corrispondenza della richiesta):

location /api/postdata {
}

location / {
}

1
ah, figo ... sì, ho provato a cercare su Google ~ * ma google non indicizza troppo bene i caratteri speciali (peccato che nginx non abbia usato le direttive, poiché probabilmente sarei atterrato proprio su quella pagina)
Dean Hiller,

@DeanHiller Sembra che Google abbia corretto quel bug: D
Yarek T

La tua risposta potrebbe non essere corretta in quanto /api/PostDatanon corrisponderà senza~*
Devy
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.