Bu yazımızda Nginx lokasyon regex örneklerini kısa detaylı anlatacağız.
Önkoşullar
Bu makalede, Nginx'in sisteminizde zaten kurulu olduğu varsayılmaktadır.
Nginx konum yönergesi sözdizimi
Nginx yapılandırma dosyasındaki konum dizini için aşağıdaki sözdizimi mevcuttur:
konum [değiştirici] [URL eşleşmesi]…
Nginx konum bloğu, bir sunucu bloğuna veya önceden tanımlanmış bazı koşullarla başka bir konuma eklenebilir. Yukarıdaki sözdiziminde değiştirici isteğe bağlı bir parametredir. Konum bloğunda değiştiricilerin varlığı, Nginx'in bir URL ile farklı bir sırada ilgilenmesini sağlar. Burada, bazı örneklerle aşağıda birkaç değiştiriciden bahsedilmiştir:
1. Tüm istekleri Nginx konum bloğuyla eşleştirme
'/', tüm istekleri eşleştirmek için önek konumu için kullanılır. Ancak, en iyi eşleşme aranmazsa, son sonuç olarak kullanılacaktır.
Misal
Aşağıdaki konum bloğunda tüm isteklerle eşleşecektir:
2. Nginx'te konum bloğunu kullanarak dizini eşleştirin
Aşağıdaki örnek, /images/ ile başlayan konum bloğundaki herhangi bir istekle eşleşecektir. Sonuç olarak, istenen URI'ye karşı daha spesifik bir eşleşen blok aranıyor. Ancak, Nginx daha spesifik bir eşleşme aramazsa, konum bloğu doğrudan seçilecektir.
Misal
Aşağıda verilen bir örnekte, Nginx, /images/ ile başlayan konum bloğundaki herhangi bir istekle eşleşecektir.
3. '=' (eşittir) konum değiştiriciyi kullanarak tam olarak eşleştirin
Konum bloğunu istenen bir URI ile tam olarak eşleştirdiğinizde '=' eşittir işareti değiştiricisi kullanılır.
Misal
Nginx önce en spesifik önek konumlarını eşleştirmeye çalışır. Ancak, aşağıdaki örnekte, konum bloğundaki '=' değiştiricisi, istenen önek yolu ile tam olarak eşleşecek ve daha sonra daha iyi eşleşmeler aramayı bırakacaktır.
…
Yukarıda belirtilen konum bloğu örneğinde, '=' konum değiştiricisi, URL etki alanımla tam olarak eşleşecektir.com/imgs. URL'ler 'alanim/imgs/index'.html' veya 'mydomain/imgs/' koşulla eşleşmeyecek.
4. Tilda (~) değiştiricisini kullanarak büyük/küçük harfe duyarlı Regex eşleşmesi
Tilda (~) değiştiricisi, istenen URI'ye karşı büyük/küçük harfe duyarlı normal ifade eşleşme araması gerçekleştirir ve sürekli olarak daha iyi bir eşleşme arar.
Misal
Aşağıdaki örnekteki ~ değiştirici, konum bloğunda büyük/küçük harfe duyarlı normal ifade (normal ifade) eşleşmesini gerçekleştirir:
…
5. Tilda (~*) değiştiricisini kullanarak büyük/küçük harfe duyarsız eşleşme
Yıldız (~*) değiştiricili yaklaşık işareti, png, gif, ico, jpeg, jpg, css veya js ile biten dosya gibi belirli bir dosya biçimiyle biten sonraki konum bloğundaki herhangi bir (büyük/küçük harfe duyarlı olmayan) istekle eşleşir. Ancak, /imgs/ klasörüne gönderilen tüm istekler önceki konum bloğu tarafından karşılanacaktır.
Misal
Aşağıdaki konum bloğunda, büyük/küçük harfe duyarsız tüm dosya türleriyle eşleşecektir.
…
6. RegEx Eşleşmesi için Caret-Tilde İşareti (^~) değiştiricisi
Caret-tilda (^~) değiştiricisi, istenen URL ile büyük/küçük harfe duyarlı normal ifade eşleşmesini gerçekleştirmek için kullanılır. Bu nedenle, eşleşen URI /imgs veya /imgs/pico'da eşleştirilecekse.png, daha iyi bir eşleşme bulmak için aramayı durdurur.
konum ^~ /imgs…
Sonuç
Regex ile Nginx konum yönergesi hakkında birkaç örnek ve önemli ayrıntıları tartıştık. Bu yazımızda değiştiricilerin kullanımından örneklerle de bahsetmiştik. Umarım bu makale, NGINX'teki konum bloklarının ana konseptini anlamanıza yardımcı olur. Teşekkürler!