Sobes.tech
Middle

Nginx ilə işləyərkən 1024 bağlantıdan çox olduqda səhv baş verərsə nə etməli?

sobes.tech Süni İntellekt

AI-dan cavab

Bu, açıq fayl təsvirlərinin sayında məhdudiyyəti göstərir.

Həll yolları:

  1. Nginx konfiqurasiyasında worker_connections-u artırın:

    // İşçi proses üçün maksimum əlaqə sayını artırın
    events {
        worker_connections 4096; // və ya daha çox, ehtiyac və resurslara görə
    }
    
  2. Əməliyyat sistemində açıq faylların limiti artırın:

    • İstifadəçi sessiyası üçün:
      # Müvəqqəti olaraq açıq faylların limitini artırın
      ulimit -n 65536
      
    • Bütün sistem üçün (daimi): /etc/security/limits.conf faylını redaktə edin. Sətirlər əlavə edin:
      # İstifadəçi üçün xüsusi limitlər
      nginx soft nofile 65536
      nginx hard nofile 65536
      
      # Alternativ olaraq, bütün istifadəçilər üçün
      # * soft nofile 65536
      # * hard nofile 65536
      
      (nginx-i istifadəçi adını dəyişə bilərsiniz, əgər fərqlidirsə.) Dəyişikliklərin tətbiqi üçün sistemi yenidən başlatmaq və ya yenidən daxil olmaq və ya sysctl -p işlətmək lazımdır.
  3. Qlobal nüvə parametrlərini yoxlayın: fs.file-max-ın kifayət qədər yüksək olduğundan əmin olun.

    # Mövcud dəyəri yoxlayın
    cat /proc/sys/fs/file-max
    # Yeni dəyər təyin edin (müvəqqəti)
    # sudo sysctl -w fs.file-max=100000
    # Daimi olaraq təyin edin - `/etc/sysctl.conf` faylını redaktə edin
    # Sətir əlavə edin: fs.file-max = 100000
    # Dəyişiklikləri tətbiq edin
    # sudo sysctl -p
    
  4. Nginx istifadəçisinin bu qədər fayl açmağa icazəsi olduğundan əmin olun: Nginx-in hansı istifadəçi ilə işlədiyini və bu istifadəçi üçün hansı limitlərin təyin olunduğunu yoxlayın. Bu, 2-ci maddə ilə əlaqədardır.

  5. Nginx-i yenidən başlatın: Konfiqurasiya və ya sistem limitlərində dəyişiklik etdikdən sonra onu yenidən başlatmaq lazımdır.

    # Nginx-i yenidən yükləyin
    sudo systemctl reload nginx
    # Yoxsa, əgər kömək etməzsə
    # sudo systemctl restart nginx
    

Həlldə prioritet:

  1. worker_connections-u yoxlayın və artırın.
  2. Nginx istifadəçisi üçün fayl təsvirçisi limitlərini yoxlayın və artırın.
  3. Qlobal fs.file-max limitini yoxlayın və artırın.
  4. Nginx-i yenidən başlatın.

Əhəmiyyətlidir ki, limitlərin artırılması əsaslandırılmış və serverin mövcud resursları ilə uyğun olmalıdır (yaddaş, CPU). Çox yüksək dəyərlər sistemin stabilliyinə mənfi təsir göstərə bilər.