Sobes.tech
Middle

Nginx sunucusunda hangi sınırlar olabilir ve bunlar neyle ilişkili olabilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Nginx sınırları performans, güvenlik ve sistem kaynaklarıyla ilgili olabilir.

Ana sınırlar:

  • worker_processes: Nginx çalışma süreçlerinin sayısını sınırlar. İşlemci çekirdek sayısı ve kullanılabilir bellekle ilgilidir. Çok yüksek bir değer bağlam değiştirme maliyetlerine yol açabilir, çok düşük ise kaynakların verimsiz kullanımına neden olabilir.
  • worker_connections: Bir çalışma sürecinin işleyebileceği maksimum eşzamanlı bağlantı sayısı. İşletim sistemi dosya tanıtıcıları (ulimit -n) ve kullanılabilir bellekle ilgilidir.
  • client_max_body_size: Müşteri isteğinin maksimum gövde boyutu. Çok büyük istekler göndererek hizmet reddi (DoS) saldırılarını önlemeye yöneliktir.
  • limit_conn / limit_req: Aynı IP'den gelen bağlantı veya istek hızını sınırlamak için modüller. DoS saldırılarına ve kötüye kullanıma karşı koruma sağlar.
  • open_file_cache max: Açık dosyaların önbelleğinde maksimum kayıt sayısı. Aynı anda açık olan dosya sayısı ve kullanılabilir bellekle ilgilidir. Çok sayıda dosya ile çalışırken performansı etkiler (örneğin, statik dosyalar, günlükler).
  • proxy_buffer_size / proxy_buffers: Proxy yanıtları için tamponların boyutları ve sayısı. Bellekle ilgilidir. Yanlış değerler hatalara veya verimsiz bellek kullanımına yol açabilir.
  • Zaman aşımı ayarları:
    • client_body_timeout: Müşteri isteğinin gövdesinin alınması arasında zaman aşımı.
    • client_header_timeout: İstek başlıklarının alınması arasında zaman aşımı.
    • send_timeout: Veri gönderimi arasında zaman aşımı.
    • keepalive_timeout: Keep-alive bağlantılarını sürdürmek için zaman aşımı. Bağlantı stabilitesi ve yavaş saldırılara karşı koruma ile ilgilidir.
  • resolver_timeout: DNS isim çözümleme zaman aşımı. DNS sunucularının kullanılabilirliği ve ağın stabilitesiyle ilgilidir.

Limitler şu faktörlere bağlı olabilir:

  • İşletim sistemi: Dosya tanıtıcıları, iş parçacıkları, bellek sınırları.
  • Donanım kaynakları: İşlemci çekirdekleri, RAM miktarı, ağ bant genişliği.
  • Yük: Beklenen eşzamanlı kullanıcı sayısı, istek yoğunluğu.
  • Nginx yapılandırması: Konfigürasyon dosyalarındaki yönergeler.
  • Güvenlik: DoS saldırılarına, parola denemelerine ve diğer tehditlere karşı koruma ihtiyacı.

worker_processes ve worker_connections ayarlarının örneği:

# İşlemci çekirdek sayısına göre çalışma süreçlerinin sayısını belirler.
worker_processes auto;

# Bir çalışma sürecinin işleyebileceği maksimum bağlantı sayısı.
# 65535 - Linux için tipik değer, ancak `ulimit -n` kontrol edilmeli
# 1024 (varsayılan) * worker_processes - Nginx'in işleyebileceği toplam bağlantı sayısı.
events {
    worker_connections 65535;
}

Sınır örnekleri tablosu:

Sınır İle ilgili bağlantı Tipik değer
worker_processes CPU auto
worker_connections Dosya tanıtıcıları, bellek 1024 - 65535
client_max_body_size Güvenlik 1m - 100m
limit_conn Güvenlik, yük Politika bağlıdır
keepalive_timeout Performans, yük 60s - 120s
open_file_cache max Bellek, dosya sayısı 1000 - 100000

Doğru sınır ayarları, Nginx'in kararlılığı, performansı ve güvenliği için kritik öneme sahiptir. Bu genellikle izleme ve yinelemeli ayarlama gerektirir.