Sobes.tech
Middle

Mida teha, kui nginx-iga töötades tekib viga, kui ühenduste arv ületab 1024?

sobes.tech AI

Vastus AI-lt

See näitab avatud failide deskriptorite arvu piirangut.

Lahendused:

  1. Tõsta worker_connections Nginx konfiguratsioonis:

    // Maksimaalse ühenduste arvu suurendamine ühe worker protsessi kohta
    events {
        worker_connections 4096; // või rohkem, sõltuvalt vajadustest ja ressurssidest
    }
    
  2. Suurenda avatud failide limiiti operatsioonisüsteemi tasandil:

    • Praeguse sessiooni kasutajale:
      # Ajutiselt suurendada avatud failide limiiti
      ulimit -n 65536
      
    • Kogu süsteemi jaoks (püsivalt): Redigeeri faili /etc/security/limits.conf. Lisa read:
      # Kasutaja spetsiifilised piirangud
      nginx soft nofile 65536
      nginx hard nofile 65536
      
      # Võimalusel kõigi kasutajate jaoks
      # * soft nofile 65536
      # * hard nofile 65536
      
      (Asenda nginx kasutajanimega, kui see on teine.) Taaskäivita süsteem või logi välja ja sisse, või käivita sysctl -p, et muudatused jõustuksid.
  3. Kontrolli kerneli globaalset seadet: Veendu, et fs.file-max väärtus on piisavalt kõrge.

    # Kontrolli praegust väärtust
    cat /proc/sys/fs/file-max
    # Määra uus väärtus ajutiselt
    # sudo sysctl -w fs.file-max=100000
    # Püsivalt määra - redigeeri `/etc/sysctl.conf`
    # Lisa rida: fs.file-max = 100000
    # Rakenda muudatused
    # sudo sysctl -p
    
  4. Veendu, et Nginx kasutajal on õigus avada nii palju faile: Kontrolli, millise kasutajana Nginx töötab ja millised piirangud on selle kasutaja jaoks määratud. See on seotud punktiga 2.

  5. Taaskäivita Nginx: Pärast konfiguratsiooni ja süsteemi piirangute muudatusi on vaja Nginx taaskäivitada.

    # Taaskäivita Nginx
    sudo systemctl reload nginx
    # Kui see ei aita
    # sudo systemctl restart nginx
    

Lahenduse prioriteet:

  1. Kontrolli ja suurenda worker_connections.
  2. Kontrolli ja suurenda failipiiranguid Nginx kasutaja jaoks.
  3. Kontrolli ja suurenda globaalset fs.file-max limiiti.
  4. Taaskäivita Nginx.

Oluline on meeles pidada, et piirangute suurendamine peaks olema põhjendatud ja vastama serveri ressurssidele (mälu, CPU). Liiga kõrged väärtused võivad põhjustada süsteemi ebastabiilsust.