İçeriğe geç
Nginx

Nginx; statik içerik sunan, uygulama trafiğini backend’lere ileten ve TLS bağlantılarını sonlandırabilen bir web sunucusu ve reverse proxy‘dir. Olay tabanlı mimarisi çok sayıda eşzamanlı bağlantıyı yönetmeye uygundur. Bir kurumdaki asıl değer, trafik kurallarının uygulama kodundan ayrılarak denetlenebilir bir katmanda yönetilmesidir.

Nginx seçilirken dosya sunumu, HTTP proxy ve TCP/UDP stream işlevleri birbirinden ayrılmalıdır. İlgili modüllerin kurulu pakette bulunması ve uygulamanın protokol ihtiyaçlarını karşılaması gerekir. Apache ile performans karşılaştırması yapılacaksa Apache’nin MPM modeli ve iki taraftaki TLS/cache ayarları eşdeğer tutulmalıdır.

Mono’nun yaklaşımı

Mono ekibinin Nginx kurulumlarındaki standartları:

  • TLS: İstemci uyumluluğuna göre TLS politikası; HSTS yalnızca HTTPS sürekliliği doğrulandıktan sonra. Preload ayrıca değerlendirilir, varsayılan değildir.
  • Sıkıştırma: gzip ve brotli ikisi birden (Brotli için ngx_brotli modülü); gzip_static/brotli_static ile pre-compressed dosyalar.
  • Cache: Uzun ömürlü immutable cache yalnızca sürümlenmiş dosyalarda; dinamik yanıtlar için kullanıcı ve oturum ayrımı doğrulanmış proxy_cache politikası.
  • Güvenlik başlıkları: Strict-Transport-Security, Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy - tek bir include dosyasında.
  • Rate limiting: limit_req_zone ile endpoint-bazlı; limit_conn_zone ile IP başına bağlantı sınırı.
  • Logging: JSON format ile Loki/ELK’a gönderim; hassas veri (cookie/auth header) loglanmaz.

Tipik üretim mimarisi

Temel trafik akışı istemci → Nginx → uygulama backend’i şeklindedir. CDN veya ayrı yük dengeleyici ancak ihtiyaç varsa eklenir. PHP-FPM’e FastCGI, Tomcat gibi HTTP backend’lerine reverse proxy üzerinden bağlanılır. Kubernetes’te servis IP’sini duyurmak ile HTTP trafiğini yönlendirmek farklı işlerdir; MetalLB bir HTTP reverse proxy’nin yerine geçmez.

Kubernetes tarafında Nginx sunucusuyla Nginx tabanlı controller projeleri aynı şey değildir. Seçilen controller’ın bakım durumu, Gateway API/Ingress desteği ve sürüm uyumluluğu ayrıca kontrol edilir. Traefik de kendi yönlendirme ve servis keşif modeline sahiptir.

Yaygın sorunlar ve çözümler

  • 502/504: Backend bağlantısı, uygulama hatası ve timeout ayrı incelenir; hata logu upstream süreleriyle eşleştirilir.
  • 413: Upload sınırı uygulama ihtiyacına göre belirlenir; proxy ve uygulama sınırları tutarlı tutulur.
  • Yüksek CPU: TLS, sıkıştırma, trafik hacmi ve konfigürasyon maliyeti ölçülmeden worker ayarları değiştirilmez.
  • Bağlantı reddi: Dinleyen servis, dosya tanıtıcı sınırı ve kuyruk doluluğu kontrol edilir.
  • TLS gecikmesi: Yeniden kullanım ve oturum politikası güvenlik gereksinimleriyle birlikte ölçülür; sabit kazanç yüzdesi varsayılmaz.

Nginx mi HAProxy mi Caddy mi?

BeklentiKarar kriteri
Statik içerik ve uygulama proxy’siNginx aynı katmanda iki rolü üstlenebilir.
Ayrıntılı yük dengeleme ve sağlık kontrolüHAProxy ile protokol ve operasyon ihtiyaçları karşılaştırılır.
Otomatik HTTPS ve sade konfigürasyonCaddy’nin sertifika yaşam döngüsü değerlendirilir.
Dinamik konteyner keşfiController/provider entegrasyonu olan çözüm seçilir.

Open Source ve Plus karşılaştırmasında ticari destek, sağlık kontrolleri ve yönetim özellikleri kullanılan sürüm için incelenir. Zamanla açık kaynak sürüme gelen özellikler nedeniyle eski bir karşılaştırma tablosu satın alma kararına tek başına dayanak olmamalıdır.

Güvenli değişiklik ve kapasite planlama

Bir proxy isteği hem istemci hem backend tarafında bağlantı tüketebilir. Bu nedenle worker_connections değeri doğrudan kullanıcı kapasitesi değildir. Dosya tanıtıcı limitleri, keepalive davranışı, uzun bağlantılar ve backend kapasitesi birlikte ölçülür. Daha fazla bağlantıya izin vermek, yavaş bir uygulamanın kuyruğunu büyüterek gecikmeyi artırabilir.

Konfigürasyon değişikliğinde önce sözdizimi kontrolü, sonra test alan adında davranış doğrulaması yapılır. Route önceliği, gerçek istemci IP’si ve uygulamanın ürettiği yönlendirmeler kontrol edilir. Önbelleğe alınan kişisel yanıtlar performans sorunu değil veri sızıntısıdır; Authorization ve cookie içeren akışlar özellikle test edilir. Mono’nun hedefi ölçümle gerekçelendirilmiş ayarlar, sürümlenen konfigürasyon ve anlaşılır bir geri dönüş prosedürüdür.

İlgili hizmetlerimiz

Sıkça sorulan sorular

Nginx mi Caddy mi Traefik mi?
Nginx statik içerik ve proxy ekosistemi, Caddy otomatik HTTPS, Traefik dinamik servis keşfiyle değerlendirilir. Kubernetes controller seçiminde proje bakım durumu ve kullanılan API desteği ayrıca kontrol edilir.
Nginx Open Source mu Plus mu?
Gerekli trafik özellikleri, yönetim API’leri ve ticari destek beklentisi kullanılan sürümün özellik tablosuyla karşılaştırılır. Open Source’a zamanla eklenen özellikler nedeniyle eski karşılaştırmalar tek başına yeterli değildir.
TLS sertifikalarını nasıl yönetelim?
VM üzerinde ACME istemcisi, Kubernetes’te cert-manager gibi bir yaşam döngüsü yöneticisi kullanılabilir. Yenileme sonrası etkin sertifika doğrulanmalıdır. HSTS preload ayrı bir karardır; bütün alt alan adlarının HTTPS sürekliliği incelenmeden uygulanmaz.
Yüksek trafikte nasıl ayarlamalıyız?
Worker, bağlantı, dosya tanıtıcı ve upstream limitleri yük testiyle belirlenir. İstemci ve backend bağlantıları birlikte kaynak tüketir. Bellek, p95/p99 gecikmesi ve hata oranı ölçülmeden sabit değerler kopyalanmamalıdır.

Bir sonraki dönüşümü birlikte planlayalım.

Ekibimiz teknik gereksinimlerinizi anlamak ve hızlıca prototip çıkarmak için hazır.