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.