V tem članku bomo na kratko razložili primere regularnih izrazov lokacije Nginx.
Pogoji
V tem članku se domneva, da je Nginx že nameščen v vašem sistemu.
Sintaksa lokacije Nginx
Za imenik lokacij v konfiguracijski datoteki Nginx je na voljo naslednja sintaksa:
lokacija [modifikator] [ujemanje URL-jev]..
Blok lokacije Nginx lahko dodate v strežniški blok ali na drugo lokacijo z nekaterimi vnaprej določenimi pogoji. V zgornji sintaksi je modifikator neobvezen parameter. Prisotnost modifikatorjev v bloku lokacije omogoča Nginxu, da obravnava URL v drugačnem vrstnem redu. Tu je spodaj omenjenih nekaj modifikatorjev z nekaj primeri:
1. Ujemanje vseh zahtev z lokacijskim blokom Nginx
Znak '/' se uporablja za lokacijo predpone, ki ustreza vsem zahtevam. Če pa se potem ne išče nobeno najboljše ujemanje, bo uporabljeno kot zadnji rezultat.
Primer
V naslednjem bloku lokacij se bo ujemal z vsemi zahtevami:
2. Ujemanje imenika z uporabo lokacijskega bloka v Nginxu
Naslednji primer se bo ujemal z vsako zahtevo v bloku lokacije, ki se začne z / images /. Posledično iskanje natančneje usklajenega bloka glede na zahtevani URI. Če pa Nginx ne išče natančnejšega ujemanja, bo lokacijski blok izbran neposredno.
Primer
V spodnjem primeru bo Nginx ustrezal vsaki zahtevi v bloku lokacije, ki se začne z / images /.
3. Natančno se ujema z uporabo modifikatorja lokacije '=' (enako)
Modifikator '=' znak enakosti se uporablja, ko natančno ujemate lokacijski blok z zahtevanim URI.
Primer
Nginx najprej poskuša najti najbolj natančne lokacije predpone. Vendar se bo v naslednjem primeru modifikator '=' v bloku lokacije natančno ujemal z zahtevano potjo predpone in nato prenehal iskati boljše ujemanje.
..
V zgoraj omenjenem primeru bloka lokacije se bo modifikator lokacije '=' natančno ujemal z URL-domeno.com / imgs. URL-ji 'mydomain / imgs / index.html 'ali' mydomain / imgs / 'se ne bosta ujemala s pogojem.
4. Regex, ki se razlikuje od velikih in malih črk, se ujema z modifikatorjem Tilda (~)
Modifikator tilda (~) izvede iskanje ujemanja regularnih izrazov, ki upošteva velike in male črke, glede na zahtevani URI in neprestano išče boljše ujemanje.
Primer
Modifikator ~ v naslednjem primeru izvede ujemanje regularnega izraza, ki upošteva velike in male črke (regularni izraz) v bloku lokacije:
..
5. Ujemanje med velikimi in malimi črkami z uporabo modifikatorja tilda (~ *)
Znak tilde z modifikatorjem zvezdice (~ *) se ujema z vsako zahtevo (ne glede na velikost črk) v naslednjem bloku lokacije, ki se konča z določeno obliko datoteke, kot je datoteka, ki se konča s png, gif, ico, jpeg, jpg, css ali js. Vse zahteve, ki se pošljejo v mapo / imgs /, bodo obravnavane v prejšnjem bloku lokacije.
Primer
V naslednjem bloku lokacije se bo ujemal z vsemi vrstami datotek, ki ne razlikujejo med velikimi in malimi črkami.
..
6. Modifikator znaka Caret-Tilde (^ ~) za RegEx Match
Modifikator caret-tilda (^ ~) se uporablja za ujemanje regularnega izraza, ki upošteva velike in male črke, z zahtevanim URL-jem. Če se bo torej ustrezni URI ujemal v / imgs ali / imgs / pico.png, neha iskati, da bi našel boljše ujemanje.
lokacija ^ ~ / imgs..
Zaključek
Z regularnimi izrazi smo obravnavali nekaj primerov in pomembne podrobnosti o direktivi o lokaciji Nginx. Uporabo modifikatorjev smo omenili tudi s primeri v tem članku. Upam, da vam bo ta članek pomagal razumeti glavni koncept lokacijskih blokov v NGINX. Hvala!