2014-11-19 34 views
5

Nel tentativo di attuare la upload progress module, la seguente configurazione del server si traduce in troppi file aperti erroreconfigurazione Nginx con conseguente troppe connessioni

2014/11/19 12:10:34 [alert] 31761#0: *1010 socket() failed (24: Too many open files) while connecting to upstream, client: 127.0.0.1, server: xxx, request: "GET /documents/15/edit HTTP/1.0", upstream: "http://127.0.0.1:80/documents/15/edit", host: "127.0.0.1" 
2014/11/19 12:10:34 [crit] 31761#0: *1010 open() "/usr/share/nginx/html/50x.html" failed (24: Too many open files), client: 127.0.0.1, server: xxx, request: "GET /documents/15/edit HTTP/1.0", upstream: "http://127.0.0.1:80/documents/15/edit", host: "127.0.0.1" 

Quello che segue è la parte rilevante del blocco del server che sta generando il conflitto passenger_enabled on; sviluppo di rails_env; root/home/utente/app/corrente/pubblico;

# redirect server error pages to the static page /50x.html 
    error_page 500 502 503 504 /50x.html; 
    location = /50x.html { 
     root html; 
    } 

    location/{ 
     # proxy to upstream server 
     proxy_pass http://127.0.0.1; 
     proxy_redirect default; 

     # track uploads in the 'proxied' zone 
     # remember connections for 30s after they finished 
     track_uploads proxied 30s; 
    } 

    location ^~ /progress { 
     # report uploads tracked in the 'proxied' zone 
     report_uploads proxied; 
    } 

Essendo un n00b rispetto a Nginx, io non comprendo dove questo sta generando l'errore di troppi file. Ho supposto che le pagine di errore sono solo per gli errori del server 500-504 ...

risposta

5

Controllare e aumento del limite di file aperti nella shell di root (a livello di sistema, è di solito 1024):

# ulimit -n 
# ulimit -n 16384 

poi si può aumentare il limite di nginx file aperti (contesto principale, superiore del nginx.conf):

worker_rlimit_nofile 16384 

quindi riavviare nginx)

Se questo non aiuta, controllare più soluzioni di dettaglio come

Nginx: 24: Too Many Open Files Error And Solution

+0

Sembra esserci una relazione con le 'worker_connections' definite a livello di eventi. Perché sto ottenendo che '8192 worker_connections non sono sufficienti. Quella figura mi sembra complicata da tentativi ed errori, ma risultante in" troppi file "o errori worker_conncetions insufficienti. Il link suggerisce limiti di sistema. Potrei provare, ma c'è ancora una relazione tra i limiti hard e soft? – Jerome