Arama Yap Mesaj Gönder
Biz Sizi Arayalım
+90
X
X
X
X

Bize Ulaşın

Konum Halkalı merkez mahallesi fatih cd ozgur apt no 46 , Küçükçekmece , İstanbul , 34303 , TR
NGINX Teknik Rehberi

NGINX Bağlantı Limiti: worker_connections ve Open File Ayarları

NGINX yüksek trafikte yeni bağlantı kabul edemiyor, worker_connections are not enough veya too many open files yazıyorsa yalnız tek bir sayı artırılmamalıdır. Worker sayısı, file descriptor üst sınırı, proxy bağlantıları, keepalive, WebSocket ve bot trafiği birlikte ölçülmelidir.

worker_connectionsToo Many Open FilesLimitNOFILEKeepaliveHigh Traffic
root@sunucu:~SSH
2026/07/17 04:27:03 [alert] 2511#2511: 1024 worker_connections are not enough
2026/07/17 04:27:04 [crit] 2511#2511: accept4() failed (24: Too many open files)
İstek akışıİstemci, NGINX ve backend arasındaki kopma noktası
YapılandırmaEtkin server ve location bloklarının doğrulanması
Canlı teşhisLog, socket, port ve servis kontrolleri
Güvenli uygulamaTest, kontrollü reload ve sonuç doğrulaması
01
Teknik açıklama

worker_connections ve açık dosya limiti neyi belirler?

Her NGINX worker’ın eşzamanlı bağlantı üst sınırı worker_connections ile belirlenir. Reverse proxy bağlantıları, upstream socketleri ve bazı açık dosyalar da descriptor tüketir; teorik kapasite işletim sistemi limitini aşamaz.

worker_processes auto çoğu sistemde CPU sayısına göre worker oluşturur; toplam istemci kapasitesi basitçe worker_processes × worker_connections gibi görünse de proxy kullanımında her istemci için ek upstream bağlantısı gerekebilir.

worker_rlimit_nofile NGINX worker’larının açık dosya limitini yükseltebilir fakat systemd LimitNOFILE ve process soft/hard limitleriyle uyumlu olmalıdır.

Uzun keepalive, WebSocket veya SSE bağlantıları düşük istek trafiğinde bile çok sayıda bağlantıyı açık tutabilir. stub_status, ss ve /proc process limitleri birlikte izlenmelidir.

Limit uyarısı ani başladıysa bot/DDoS, slow client, upstream bağlantı sızıntısı veya yanlış keepalive yapılandırması araştırılmadan yalnız limit yükseltilmemelidir.

Kapasite hesabında proxy kullanan bir istemcinin hem client hem upstream bağlantısı tüketebileceğini hesaba katın; gerçek değer stub_status ve process fd sayısıyla ölçülmelidir.

02
Log mesajları ve anlamları

Worker, file descriptor ve bağlantı limiti mesajları

E-postada, tarayıcıda veya SSH günlüğünde gördüğünüz ifadeyi aratın. Her kartta anlam, muhtemel neden ve güvenli ilk işlem bulunur.

8 kayıt
01kritik

worker_connections are not enough

Anlamı: Bir worker yeni bağlantı için tanımlı limite ulaştı.

Muhtemel neden: Düşük limit, uzun bağlantılar veya trafik patlaması.

Aktif bağlantı, worker sayısı ve limitleri birlikte ölçün.
02kritik

accept4() failed (24: Too many open files)

Anlamı: Process yeni socket/file descriptor açamıyor.

Muhtemel neden: NOFILE soft/hard veya systemd limiti düşük.

NGINX master/worker /proc limits ve fd sayısını kontrol edin.
03kritik

socket() failed (24: Too many open files)

Anlamı: Upstream ya da istemci socketi oluşturulamadı.

Muhtemel neden: Descriptor limiti veya sızıntı.

lsof ve /proc/PID/fd sayısını izleyin.
04uyari

open socket left in connection

Anlamı: Reload/çıkış sırasında açık socket kaldı.

Muhtemel neden: Uzun bağlantı veya modül davranışı.

WebSocket/stream bağlantılarını ve worker shutdown süresini inceleyin.
05uyari

connect() failed (99: Cannot assign requested address)

Anlamı: Yerel ephemeral port veya ağ kaynağı tükenmiş olabilir.

Muhtemel neden: Çok fazla upstream bağlantısı veya TIME_WAIT.

ss -s ve ip_local_port_range değerini inceleyin.
06uyari

upstream timed out under load

Anlamı: Bağlantı limiti doğrudan dolmasa da worker/backend kuyruğu büyüyor.

Muhtemel neden: Upstream kapasitesi NGINX’ten düşük.

NGINX ile backend concurrency limitlerini eşleştirin.
07bilgi

1024 worker_connections

Anlamı: Yaygın varsayılan/örnek değer yoğun sistem için yetersiz olabilir.

Muhtemel neden: Config kapasite planı yapılmamış.

Gerçek trafik ve fd limitine göre hesap yapın.
08bilgi

EMFILE: too many open files

Anlamı: Uygulama veya NGINX process file descriptor sınırına ulaştı.

Muhtemel neden: Limit veya dosya/socket sızıntısı.

Hangi process’in fd sayısının büyüdüğünü belirleyin.

Bu ifadeyle eşleşen kayıt bulunamadı.

03
Güvenli ilk inceleme

SSH teşhis komutları ve hangi çıktıya bakılmalı?

Komutlar root erişimi içindir. Önce yalnızca durum ve log toplayın; nedeni görmeden kalıcı ayar değiştirmeyin.

Worker ve bağlantı ayarları
nginx -T | grep -nE 'worker_processes|worker_connections|worker_rlimit_nofile|keepalive_timeout|keepalive_requests'

Etkin kapasite ve bağlantı yaşam ayarlarını gösterir.

Process limitleri
MASTER=$(cat /run/nginx.pid); cat /proc/$MASTER/limits | grep -i 'open files'
for p in $(pgrep -f 'nginx: worker'); do echo PID=$p FD=$(ls /proc/$p/fd | wc -l); cat /proc/$p/limits | grep -i 'open files'; done

Master ve worker gerçek NOFILE limitlerini/fd kullanımını gösterir.

Bağlantı özeti
ss -s
ss -ant state established | wc -l
ss -ant state time-wait | wc -l

Aktif, established ve TIME_WAIT bağlantılarını ölçer.

Stub status
curl -s http://127.0.0.1/nginx_status

Active, accepts, handled, requests, reading/writing/waiting değerlerini gösterir.

systemd NOFILE
systemctl show nginx -p LimitNOFILE
systemctl cat nginx

Service unit ve override dosyalarındaki açık dosya üst sınırını gösterir.

Reload ve limit doğrulama
nginx -t && systemctl reload nginx
systemctl show nginx -p LimitNOFILE

Config değişikliğini uygulayıp servis limitini doğrular.

04
Barındırma ortamına göre

Ubuntu/Debian, AlmaLinux/CloudLinux ve Plesk kontrolleri

NGINX hatasının temel nedeni aynı olsa da paket yolları, servis adları, güvenlik katmanları ve sanal host yönetimi kullanılan Linux dağıtımına veya Plesk altyapısına göre değişir.

Ubuntu / Debian

NGINX Worker Connections ve Open Files için systemd, paket yolu ve journald kontrolleri.

  • Önce etkin NGINX yapılandırmasını ve servis durumunu doğrulayın.
  • Domain error logu ile systemd günlüğünü aynı zaman aralığında karşılaştırın.
  • Değişiklikten önce nginx -t, ardından kesintisiz reload uygulayın.
nginx -T | grep -nE 'worker_processes|worker_connections|worker_rlimit_nofile' systemctl show nginx -p LimitNOFILE ss -s

AlmaLinux / CloudLinux

NGINX Worker Connections ve Open Files için SELinux, PHP-FPM pool ve RHEL tabanlı servis kontrolleri.

  • NGINX ve ilgili backend servislerinin aktif durumunu kontrol edin.
  • SELinux AVC kayıtlarını ve güvenlik katmanlarını gözden geçirin.
  • Konfigürasyon testi geçmeden servisi yeniden başlatmayın.
nginx -T | grep -nE 'worker_processes|worker_connections|worker_rlimit_nofile' systemctl show nginx -p LimitNOFILE ss -s

Plesk Obsidian

Plesk tarafından üretilen NGINX sanal host dosyalarında nginx worker connections ve open files kontrolü.

  • Domains > Apache & nginx Settings bölümündeki ek direktifleri inceleyin.
  • Elle oluşturulan ve Plesk tarafından üretilen dosyaları birbirinden ayırın.
  • Gerekirse yalnız ilgili domain için web yapılandırmasını yeniden oluşturun.
nginx -T | grep -nE 'worker_processes|worker_connections|worker_rlimit_nofile' systemctl show nginx -p LimitNOFILE plesk repair web -n
05
Güvenli çözüm sırası

NGINX worker_connections ve open files çözüm sırası

Önce gerçek bağlantı/fd kullanımını ve trafik türünü ölçün; ardından NGINX, systemd ve işletim sistemi limitlerini uyumlu ayarlayın.

1

Hatanın anını ve trafik profilini kaydedin

Ani bot trafiği mi, normal büyüme mi, WebSocket/keepalive mı belirleyin.

date; uptime; ss -s
2

Etkin worker ayarlarını çıkarın

Worker sayısı, bağlantı limiti ve rlimit değerlerini kaydedin.

nginx -T | grep -nE 'worker_processes|worker_connections|worker_rlimit_nofile'
3

Gerçek process NOFILE ve fd kullanımını ölçün

Config değeriyle /proc limits ve açık descriptor sayısını karşılaştırın.

for p in $(pgrep -f 'nginx: worker'); do echo -n "$p "; ls /proc/$p/fd | wc -l; done
4

Bağlantı türlerini analiz edin

Established, waiting, TIME_WAIT, WebSocket ve upstream bağlantılarını ayırın.

ss -ant | awk 'NR>1 {s[$1]++} END {for(k in s) print k,s[k]}'
5

Uyumlu limit ve trafik kontrolü uygulayın

worker_connections, worker_rlimit_nofile ve systemd LimitNOFILE birlikte planlanmalıdır.

systemctl show nginx -p LimitNOFILE
6

Yük altında izle ve doğrula

Reload sonrası fd sayısı, stub_status ve error_log uyarılarını takip edin.

nginx -t && systemctl reload nginx watch -n2 'ss -s; curl -s http://127.0.0.1/nginx_status'
06
Belirtiye göre ayrım

Özel senaryolar ve karar ağacı

Ani bot/DDoS trafiği

Limit artışı öncesi IP/URI dağılımı ve rate limiting planı gerekir.

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head
WebSocket bağlantıları

Uzun süre açık kalan bağlantılar worker kapasitesini tüketir.

ss -antp | grep nginx | wc -l
Uzun keepalive

Waiting bağlantıları ve keepalive_timeout değeri incelenir.

curl -s http://127.0.0.1/nginx_status; nginx -T | grep keepalive_timeout
Reverse proxy yoğunluğu

Her istemci için ek upstream socket gerekebileceği hesaba katılır.

ss -antp | grep nginx | head
Log/dosya descriptor sızıntısı

Bir worker fd sayısı sürekli yükseliyorsa açık hedefler incelenir.

lsof -p $(pgrep -f 'nginx: worker' | head -1) | head -n 50
Plesk çok domainli sunucu

Global nginx.conf, web server template ve domain trafiği birlikte değerlendirilir.

nginx -T | grep worker_connections; ss -s

Kesinlikle yapmayın

  • worker_connections değerini systemd/NOFILE sınırını kontrol etmeden artırmayın.
  • DDoS veya bot trafiğini yalnız kapasite büyüterek karşılamayın.
  • Çok yüksek keepalive ve sınırsız WebSocket bağlantılarını ölçmeden bırakmayın.
  • Process fd sızıntısı ihtimalini göz ardı etmeyin.
  • Ulimit değişikliğini yalnız shell profilinde yapıp systemd servisine uygulandığını varsaymayın.

Çözüm sonrası doğrulama

  • Worker process açık dosya limiti planlanan değerdedir.
  • Aktif fd sayısı limitin güvenli altında kalmaktadır.
  • Error log yeni worker_connections/too many open files kaydı üretmemektedir.
  • stub_status accepts ve handled değerleri arasında kayıp yoktur.
  • Bot/rate limit ve upstream kapasitesi normal trafikle uyumludur.
07
Resmî teknik kaynaklar

NGINX ve ilgili bileşenlerin resmî dokümantasyonu

08
İç SEO içerik kümesi

İlgili NGINX hata çözümleri

09
Sık sorulan sorular

NGINX Worker Connections ve Open Files hakkında merak edilenler

worker_connections neyi belirler?

Her worker process’in aynı anda açabileceği bağlantıların üst sınırını belirler; proxy upstream bağlantıları da bu sayıya dâhil olabilir.

Toplam bağlantı kapasitesi nasıl hesaplanır?

Kabaca worker_processes × worker_connections düşünülür fakat file descriptor limiti, proxy bağlantıları ve trafik türü gerçek kapasiteyi düşürür.

Too many open files nasıl çözülür?

Process NOFILE, systemd LimitNOFILE, worker_rlimit_nofile ve gerçek fd kullanımını birlikte uyumlu hale getirmek gerekir.

worker_connections artırmak yeterli mi?

Hayır. İşletim sistemi limiti düşükse etkisiz olur; bot trafiği veya fd sızıntısı varsa sorunu büyütebilir.

stub_status ne gösterir?

Aktif bağlantı, accepts, handled, requests ile reading/writing/waiting bağlantı sayılarını gösterir.

WebSocket NGINX limitini etkiler mi?

Evet. Uzun süre açık kalan her WebSocket istemci ve çoğunlukla upstream bağlantısı tüketir.

systemd LimitNOFILE nasıl doğrulanır?

systemctl show nginx -p LimitNOFILE ve çalışan worker’ın /proc/PID/limits dosyası birlikte kontrol edilmelidir.

EKA YAZILIM VE BİLİŞİM SİSTEMLERİ

Sunucunuzdaki hatayı kalıcı olarak çözelim

cPanel, WHM, CloudLinux, LiteSpeed, MariaDB, Exim ve güvenlik katmanlarını birlikte analiz ederek yalnızca servisi kaldırmak yerine arızanın temel nedenini gideriyoruz.

Sunucu Desteği Al WhatsApp
Top