2014-11-19 16 views
5

W dążeniu do wdrożenia upload progress module, następująca konfiguracja serwera skutkuje zbyt wiele otwartych plików błądkonfiguracji Nginx w wyniku zbyt wielu połączeń

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" 

Poniżej znajduje się odpowiednia część bloku serwera, który generuje konflikt passenger_enabled on; development rails_env; root/home/user/app/current/public;

# 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; 
    } 

Jako krewny n00b do nginx, nie zrozumieć, gdzie jest to generowanie zbyt wiele plików błędu. Przypuszczałem, że strony błędów są tylko dla błędów serwera 500-504 ...

Odpowiedz

5

Najpierw należy sprawdzić i zwiększyć limitu otwartych plików w rootem (szeroki systemu, to zazwyczaj 1024):

# ulimit -n 
# ulimit -n 16384 

następnie można zwiększyć otwartego limitu nginx jako pliki (główny kontekst, szczycie nginx.conf):

worker_rlimit_nofile 16384 

potem restart nginx)

Jeśli to nie pomoże, sprawdź więcej rozwiązań detali jak

Nginx: 24: Too Many Open Files Error And Solution

+0

Wygląda na to, że istnieje pewien związek z 'employee_connections' zdefiniowany na poziomie zdarzeń. Ponieważ dostaję '8192 worker_connections nie są wystarczające' Ta liczba jest wprowadzana przez próbę i błąd, ale skutkuje albo' zbyt wieloma plikami' lub niewystarczającymi błędami worker_conncetions. Link sugeruje ograniczenia systemowe. Mogę to wypróbować, ale czy istnieje związek między twardymi i miękkimi ograniczeniami? – Jerome

Powiązane problemy