nginx uLimit 'worker_connections supera il limite di risorse file aperto: 1024'


14

Continuo a ricevere questo errore nginx/error.loge mi sta facendo impazzire:

8096 worker_connections exceed open file resource limit: 1024

Ho provato tutto quello che mi viene in mente e non riesco a capire cosa sta limitando nginx qui. Sai cosa mi sto perdendo?

nginx.conf ha questo:

worker_processes 4;
events {
        worker_connections 8096;
        multi_accept on;
        use epoll;
}

Ho cambiato Ulimit del mio sistema in security/limits.confquesto modo:

# This is added for Open File Limit Increase
*               hard    nofile          199680
*               soft    nofile          65535

root            hard    nofile          65536
root            soft    nofile          32768

# This is added for Nginx User
nginx           hard    nofile          199680
nginx           soft    nofile          65535

Stava ancora mostrando l'errore. Quindi ho anche provato a modificare /etc/default/nginxe ho aggiunto questa riga:

ULIMIT="-n 65535"

Sta ancora mostrando lo stesso errore. Non riesco a capire cosa sta limitando la connessione nginx worker a solo 1024. Puoi indicarmi?

Ho Debian 7 + nginx

Risposte:


29

Impostato worker_rlimit_nofile 65535;in nginx.conf nel contesto principale.


1
Questo è tutto! Ciò l'ha risolto. Oh sei un salvatore. Funziona ora anche quando ULimit non è impostato manualmente /etc/default/nginx file. Eccezionale. Grazie @Xaviour
Neel

1
ben fatto Xavier.
Dave Holland,

@Xavier questo ha rimosso l'errore msg, ma puoi spiegare perché questo funziona senza cambiare ulimit come menzionato nella risposta qui sotto? ricerche su Google dicono di cambiare ulimit in limits.conf o in systcl.conf, ma nessuno funziona per me.
Bsienn,

2

Diventa l'utente:

su - nginx

Verifica i limiti:

ulimit -Hn
ulimit -Sn

Modifica il numero di file che il file system ti farà aprire:

vi /etc/sysctl.conf
fs.file-max = 70000

carica le tue modifiche:

sysctl -p

Vedi se questo aiuta.


Sto usando init e non ha installato systemctl. Farebbe la differenza?
Neel,

Quando sono passato all'utente Nginx, l'ulimit -Hn viene mostrato correttamente lì. Ho quindi controllato init.d/nginxe controlla se ULIMIT è impostato nella cartella predefinita (dove è già impostato) e quindi si suppone che imposti quel valore ma non lo fa:Check if the ULIMIT is set in /etc/default/nginx
Neel

Dopo aver cambiato file-max e non appena sysctl -peseguo Ubuntu 18.04.2 si blocca, apre troppi file e non si avvia, ho dovuto rimuovere il codice in avvio sicuro per riavviare il sistema operativo.
Bsienn,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.