Vom explica exemplele de regex de localizare Nginx în scurt detaliu în acest articol.
Condiții prealabile
În acest articol se presupune că Nginx este deja instalat pe sistemul dvs.
Sintaxa directivei de localizare Nginx
Următoarea sintaxă este disponibilă pentru directorul de locație din fișierul de configurare Nginx:
locație [modificator] [potrivire URL]..
Blocul de locație Nginx poate fi adăugat într-un bloc de server sau într-o altă locație cu anumite condiții predefinite. În sintaxa de mai sus, modificatorul este un parametru opțional. Prezența modificatorilor în blocul de locație permite Nginx să se ocupe de o adresă URL într-o ordine diferită. Aici, puțini modificatori sunt menționați mai jos, cu câteva exemple:
1. Potrivirea tuturor cererilor cu blocul de locație Nginx
„/” Este utilizat pentru locația prefixului pentru a se potrivi tuturor cererilor. Cu toate acestea, dacă nu se caută cele mai bune potriviri, atunci va fi folosit ca ultim rezultat.
Exemplu
În următorul bloc de locație, se va potrivi cu toate cererile:
2. Adaptați directorul utilizând blocul de locație din Nginx
Următorul exemplu se va potrivi cu orice solicitare din blocul de locație care începe cu / images /. În consecință, căutarea unui bloc mai specific asociat cu URI-ul solicitat. Cu toate acestea, dacă Nginx nu caută o potrivire mai specifică, blocul de locație va fi selectat direct.
Exemplu
În exemplul de mai jos, Nginx va potrivi orice cerere din blocul de locație care începe cu / images /.
3. Potriviți exact folosind modificatorul de locație '=' (egal cu)
Modificatorul '=' semnul egal este utilizat atunci când potriviți exact blocul de locație cu un URI solicitat.
Exemplu
Nginx încearcă mai întâi să se potrivească cu cele mai specifice locații ale prefixului. Cu toate acestea, în exemplul următor, modificatorul „=” din blocul de locație se va potrivi exact cu calea de prefix solicitată și apoi nu va mai căuta potriviri mai bune.
..
În exemplul de bloc de locație menționat mai sus, modificatorul de locație '=' se va potrivi exact cu URL-ul mydomain.com / imgs. Adrese URL mydomain / imgs / index.html 'sau' mydomain / imgs / 'nu se vor potrivi condiției.
4. Potrivirea Regex între majuscule și minuscule utilizând modificatorul Tilda (~)
Modificatorul tilda (~) efectuează căutarea de potrivire a expresiei regulate, sensibile la majuscule, împotriva URI-ului solicitat și caută continuu o potrivire mai bună.
Exemplu
Modificatorul ~ din exemplul următor efectuează potrivirea regex (expresie regulată) diferențiată de majuscule și minuscule în blocul de locație:
..
5. Potrivire insensibilă la majuscule și minuscule folosind modificatorul tilda (~ *)
Semnul tilde cu un modificator asterisc (~ *) se potrivește oricărei cereri (care nu disting majuscule / minuscule) din următorul bloc de locație care se termină cu un format de fișier specific, cum ar fi fișierul care se termină cu png, gif, ico, jpeg, jpg, css sau js. Cu toate acestea, orice solicitare care se trimite în folderul / imgs / va fi distrată de blocul de locație anterior.
Exemplu
În următorul bloc de locație, acesta se va potrivi cu toate tipurile de fișiere care nu disting majusculele și minusculele.
..
6. Modificator Caret-Tilde Sign (^ ~) pentru RegEx Match
Modificatorul caret-tilda (^ ~) este folosit pentru a efectua potrivirea expresiei regulate cu sensibilitate la majuscule și minuscule cu adresa URL solicitată. Prin urmare, dacă URI-ul care se potrivește va fi asociat în / imgs sau / imgs / pico.png, nu mai caută pentru a găsi o potrivire mai bună.
locație ^ ~ / imgs..
Concluzie
Am discutat câteva exemple și detalii importante despre directiva de localizare Nginx cu regex. De asemenea, am menționat utilizarea modificatorilor cu exemple în acest articol. Sper că acest articol vă va ajuta să înțelegeți conceptul principal al blocurilor de locație din NGINX. Mulțumiri!