Przykłady Regex lokalizacji Nginx

Przykłady Regex lokalizacji Nginx
Dyrektywa lokalizacji Nginx umożliwia żądania routingu do określonej lokalizacji w systemie plików. Podczas gdy Nginx pasuje lub wyszukuje blok lokalizacji w stosunku do żądanego adresu URL, dyrektywa po lokalizacji informuje Nginx, gdzie szukać konkretnej ścieżki, włączając wszystkie pliki i katalogi.

W tym artykule wyjaśnimy przykłady Regex lokalizacji Nginx w tym artykule.

Wymagania wstępne

W tym artykule zakłada się, że Nginx jest już zainstalowany w twoim systemie.

Składnia dyrektywy lokalizacji Nginx

Dostępna jest następująca składnia do katalogu lokalizacji w pliku konfiguracyjnym Nginx:

lokalizacja [modyfikator] [URL-Match]

Blok lokalizacji Nginx można dodać do bloku serwera lub w innym miejscu z pewnymi predefiniowanymi warunkami. W powyższej składni modyfikator jest parametrem opcjonalnym. Obecność modyfikatorów w bloku lokalizacji pozwala Nginx radzić sobie z adresem URL w innej kolejności. Tutaj wymieniono kilka modyfikatorów z kilkoma przykładami:

Dopasowanie wszystkich żądań do bloku lokalizacji Nginx

„/” Służy do lokalizacji prefiksów do dopasowania wszystkich żądań. Jeśli jednak nie zostaną przeszukane żadne najlepsze dopasowania, zostanie ono używane jako ostatni wynik.

Przykład
W poniższym bloku lokalizacji będzie pasować do wszystkich żądań:

Lokalizacja /

Directory dopasowania za pomocą bloku lokalizacji w Nginx

Poniższy przykład będzie pasował do dowolnego żądania w bloku lokalizacji, który zaczyna się od /obrazy /. W związku z tym poszukiwanie bardziej konkretnego dopasowanego bloku w stosunku do żądanego URI. Jeśli jednak Nginx nie wyszukuje bardziej konkretnego dopasowania, blok lokalizacji zostanie wybrany bezpośrednio.

Przykład
W poniższym przykładzie Nginx będzie pasować do dowolnego żądania w bloku lokalizacji, który zaczyna się od /obrazy /.

lokalizacja / obrazy /

Dokładnie dopasuj za pomocą modyfikatora lokalizacji „=” (równych)

Modyfikator '=' Znak równy jest używany po dokładnie dopasowaniu bloku lokalizacji do żądanego URI.

Przykład
Nginx najpierw próbuje dopasować najbardziej specyficzne lokalizacje przedrostka. Jednak w poniższym przykładzie modyfikator „=” w bloku lokalizacji dokładnie pasuje do żądanej ścieżki prefiks.

lokalizacja = /imgs

W wyżej wymieniony przykład bloku lokalizacji modyfikator lokalizacji „= '.com/IMGS. URL „myDomain/IMGS/indeks.html 'lub „myDomain/IMGS/” nie będzie pasować do tego warunku.

Wrażliwy na regex dopasowanie za pomocą modyfikatora Tilda (~)

Modyfikator Tilda (~) wykonuje wrażliwe na literę wyrażenie regularne wyszukiwanie dopasowania z żądanym URI i ciągle wyszukuje lepsze dopasowanie.

Przykład
Modyfikator ~ w poniższym przykładzie wykonuje dopasowanie regularnego wyrażenia (wyrażenie regularne) w bloku lokalizacji:

Lokalizacja ~ /imgs

Nieczuły dopasowanie przypadków za pomocą modyfikatora Tilda (~*)

Znak Tilde z modyfikatorem gwiazdkową (~*) odpowiada dowolnym żądaniu (pod względem rozczulenia przypadków) w następnym bloku lokalizacji, które kończy się konkretnym formatem pliku, takim jak plik kończący się na PNG, GIF, ICO, JPEG, JPG, CSS lub JS. Jednak wszelkie żądania wysyłane do folderu / IMGS / Folder będą rozrywane przez poprzedni blok lokalizacji.

Przykład
W poniższym bloku lokalizacji będzie pasował do wszystkich typów plików wrażliwych.

Lokalizacja ~* .(Png | ICO | gif | jpg | jpeg | css | js) $

Znak Caret-Tilde (^~) modyfikator dopasowania Regex

Modyfikator Caret-Tilda (^~) służy do wykonania wrażliwego na literę dopasowania wyrażenia regularnego z żądanym adresem URL. Dlatego jeśli dopasowany URI zostanie dopasowany do /IMGS lub /IMGS /PICO.png, przestaje szukać lepszego dopasowania.

Lokalizacja ^~ /imgs

Wniosek

Omówiliśmy kilka przykładów i ważne szczegóły dotyczące dyrektywy lokalizacji Nginx z Regex. Wspomnieliśmy również o zastosowaniu modyfikatorów z przykładami w tym artykule. Mam nadzieję, że ten artykuł pomoże ci zrozumieć główną koncepcję bloków lokalizacji w Nginx. Dzięki!