Ana içeriğe geç

Nginx Location Yapılandırması: Tam Eşleşme, Regex ve Proxy Ayarları

Bu Rehberde Ne Öğreneceksiniz?​

Bu rehber, Nginx’in gelen HTTP isteklerini hangi location bloğunun işleyeceğini nasıl belirlediğini açıklar.
Amaç, yanlış yönlendirmeleri önlemek ve performanslı yapılandırmalar oluşturmaktır.


Teknik Özet​

Bu içerik, Nginx location directive mantığını ve eşleşme önceliklerini ele alır.
Regex kullanımı, root–alias farkı ve proxy_pass ile ters vekil senaryoları açıklanır.


Location Operatörleri ve Anlamları​

Nginx, eşleşme davranışını belirlemek için farklı operatörler kullanır:

OperatörEşleşme TürüÖncelik
=Tam eşleşmeEn yüksek
^~Prefix eşleşme (regex durdurur)Yüksek
~Regex (harf duyarlı)Orta
~*Regex (harf duyarsız)Orta
(yok)Standart prefixEn düşük

Doğru operatör seçimi, hem hız hem güvenlik açısından kritiktir.


Nginx Eşleşme Algoritması​

Nginx bir istek aldığında şu sırayı izler:

  1. Tam eşleşme (=) kontrol edilir
  2. En uzun prefix bulunur
    • Eğer ^~ varsa süreç burada biter
  3. Regex blokları, dosyadaki yazım sırasına göre çalıştırılır
  4. Regex eşleşmezse, prefix bloğuna geri dönülür

Bu mekanizma öngörülebilir yönlendirme sağlar.


root ve alias Arasındaki Fark​

root Kullanımı​

location /img/ {
root /var/www;
}
/img/logo.png → /var/www/img/logo.png

alias Kullanımı​


location /img/ {
alias /var/www/photos/;
}
/img/logo.png → /var/www/photos/logo.png

⚠️ alias kullanırken sondaki / zorunludur, aksi halde 404 oluşur.

proxy_pass ile Reverse Proxy​


location /api/ {
proxy_pass http://127.0.0.1:8000/;
proxy_set_header Host $host;
}
  • Bu yapı API isteklerini backend uygulamaya iletir. Sondaki /, /api yolunun backend’e gönderilmesini engeller.

Uygulamalı Location Örnekleri​


# Tam eşleşme – sağlık kontrolü
location = /health {
return 200 "OK";
}

Statik dosyalar – regex engellenir​

location ^~ /static/ {
root /var/www/rabisu;
}

Backend yönlendirme​

location /api/ {
proxy_pass http://127.0.0.1:8000/;
}
  • Bu yapı üretim ortamlarında yaygın olarak kullanılır.

Sıkça Sorulan Sorular​

1. Regex sırası neden önemli? Regex’te dosyada ilk yazılan eşleşme kazanır.

2. ^~ ne zaman kullanılmalı? Prefix’in regex tarafından ezilmesini istemediğinizde.

3. Değişikliği canlıya almadan nasıl test ederim? sudo nginx -t komutunu çalıştırın.

4. Dosya var ama 404 alıyorum, neden? Genelde root–alias karışıklığı veya izin sorunudur.


Sonuç​

Doğru bir location hiyerarşisi, Nginx performansını ve güvenliğini doğrudan etkiler. Yapılandırmalarınızı test ederek ve sade tutarak hataları önleyebilirsiniz.

Bu ayarları Rabisu Bulut altyapısında güvenle uygulayabilirsiniz.