Nginx üzerinde alt alan adı yönlendirme, web sunucularında trafik yönetimi için vazgeçilmez bir özelliktir.
Nginx üzerinde alt alan adı yönlendirme, web sunucularında trafik yönetimi için vazgeçilmez bir özelliktir. Bu yapılandırma sayesinde, ana alan adınıza bağlı alt alan adlarını farklı dizinlere, sunuculara veya protokollere yönlendirebilirsiniz. Özellikle büyük ölçekli kurumsal sitelerde, blog.example.com gibi alt alan adlarını api.example.com’a proxy etmek veya www.example.com’u example.com’a kalıcı olarak yönlendirmek gibi senaryolarda kullanılır. Nginx’in hafif ve performanslı yapısı, bu işlemleri verimli kılar. Bu makalede, adım adım yapılandırma rehberi sunarak, sunucu yöneticilerinin hızlıca uygulamaya geçmesini sağlayacağız. Temel kavramlardan pratik örneklere kadar kapsamlı bilgi edineceksiniz.
Nginx üzerinde alt alan adı yönlendirme, sunucu blokları (server block) aracılığıyla gerçekleştirilir. Her alt alan adı için ayrı bir server bloğu tanımlanır ve server_name direktifiyle eşleştirilir. Bu bloklar, /etc/nginx/sites-available/ dizininde ayrı dosyalarda tutulur ve simlink ile sites-enabled’a bağlanır. DNS kayıtlarınızın A veya CNAME olarak ana sunucuya işaret etmesi şarttır. Yapılandırma sonrası nginx -t ile test edip systemctl reload nginx ile yeniden yükleyin. Bu yaklaşım, trafiği dengeler ve bakım kolaylığı sağlar.
Yönlendirme türleri arasında 301 (kalıcı) ve 302 (geçici) yeniden yazma (rewrite) kuralları öne çıkar. Proxy modunda ise proxy_pass ile trafiği başka bir backend’e iletirsiniz. Güvenlik için proxy_set_header ile Host ve X-Real-IP başlıklarını ekleyin. Loglama için access_log ve error_log direktiflerini subdomain’e özgü dosyalara yönlendirin. Bu temel adımlar, ölçeklenebilir bir altyapı kurmanızı sağlar ve kaynak tüketimini minimize eder.
server { listen 80; server_name sub.example.com; ... }Nginx üzerinde alt alan adını bir Node.js uygulamasına proxy etmek için server bloğunuzu şu şekilde yapılandırın. Önce /etc/nginx/sites-available/sub.example.com dosyasını oluşturun:
server {
listen 80;
server_name api.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Bu konfigürasyon, api.example.com trafiğini localhost:3000’e iletir. HTTPS için listen 443 ssl; ekleyin ve SSL sertifikalarını belirtin. Test için curl ile doğrulayın: curl -H “Host: api.example.com” http://sunucu-ip. Performans artışı için gzip’i etkinleştirin ve cache header’ları ayarlayın. Bu yöntem, mikroservis mimarilerinde idealdir ve yük dengeleme için upstream blokları eklenebilir.
Blog.example.com’u /var/www/blog dizinine yönlendirmek için root direktifini kullanın. Server bloğunda:
server {
listen 80;
server_name blog.example.com;
root /var/www/blog;
index index.html index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
Sunucu sahipliğini nginx:nginx olarak ayarlayın ve izinleri 755 yapın. PHP desteği için fastcgi modülünü etkinleştirin. Bu yapı, statik ve dinamik içerikleri verimli sunar. Hata sayfaları için error_page direktifini ekleyerek kullanıcı deneyimini iyileştirin. Yaklaşık 100 istek/saniye kapasitesiyle kurumsal trafiklere uygundur.
Nginx üzerinde alt alan adı sorunlarında en sık karşılaşılan, DNS gecikmesi veya yanlış server_name eşleştirmesidir. Nginx -T ile tam konfigürasyonu listeleyin ve çakışmaları giderin. 502 Bad Gateway hatası proxy_pass hedefinin kapalı olmasından kaynaklanır; backend sağlık kontrolleri ekleyin. SSL karışıklıklarını önlemek için HSTS header’ını subdomain’lere uygulayın.
Optimizasyon için worker_processes’i CPU çekirdek sayısına eşitleyin ve worker_connections’ı 1024’e çıkarın. Rate limiting ile DDoS’a karşı korunun: limit_req_zone bloğu tanımlayın. Monitoring için status modülünü etkinleştirin. Bu ipuçları, uptime’ı %99.9’a taşır ve kaynak kullanımını optimize eder. Düzenli log analiziyle sorunları proaktif çözün.
Sonuç olarak, nginx üzerinde alt alan adı yönlendirme, esnek ve güvenilir bir web altyapısı kurmak için güçlü bir araçtır. Bu rehberdeki adımları uygulayarak, trafiğinizi etkin yönetebilir, performansınızı artırabilirsiniz. Kurumsal projelerinizde tutarlı testler yaparak ölçeklendirmeye odaklanın; böylece kesintisiz hizmet sunmaya devam edin.