2015-01-08 5 views
9

Obwohl ich die folgende Einstellung vorgenommen und neu gestartet, auch den Server:Wie setze ich nginx max offene Dateien?

# head /etc/security/limits.conf -n2 
www-data soft nofile -1 
www-data hard nofile -1 
# /sbin/sysctl fs.file-max 
fs.file-max = 201558 

Die offene Dateien Einschränkung bestimmter Prozess ist 1024/4096 noch:

# ps aux | grep nginx 
root  983 0.0 0.0 85872 1348 ?  Ss 15:42 0:00 nginx: master process /usr/sbin/nginx 
www-data 984 0.0 0.2 89780 6000 ?  S 15:42 0:00 nginx: worker process 
www-data 985 0.0 0.2 89780 5472 ?  S 15:42 0:00 nginx: worker process 
root  1247 0.0 0.0 11744 916 pts/0 S+ 15:47 0:00 grep --color=auto nginx 
# cat /proc/984/limits 
Limit      Soft Limit   Hard Limit   Units 
Max cpu time    unlimited   unlimited   seconds 
Max file size    unlimited   unlimited   bytes 
Max data size    unlimited   unlimited   bytes 
Max stack size   8388608    unlimited   bytes 
Max core file size  0     unlimited   bytes 
Max resident set   unlimited   unlimited   bytes 
Max processes    15845    15845    processes 
Max open files   1024     4096     files 
Max locked memory   65536    65536    bytes 
Max address space   unlimited   unlimited   bytes 
Max file locks   unlimited   unlimited   locks 
Max pending signals  15845    15845    signals 
Max msgqueue size   819200    819200    bytes 
Max nice priority   0     0 
Max realtime priority  0     0 
Max realtime timeout  unlimited   unlimited   us 

Ich habe alle möglichen Lösungen ausprobiert vom googlen aber vergebens. Was für eine Einstellung habe ich vermisst?

+2

duplizieren: http://stackoverflow.com/questions/16919673/nginx-file-descriptor-limit? – T0xicCode

Antwort

9

ich die Antwort in wenigen Minuten nach der Einlieferung dieser Frage gefunden ...

# cat /etc/default/nginx 
# Note: You may want to look at the following page before setting the ULIMIT. 
# http://wiki.nginx.org/CoreModule#worker_rlimit_nofile 
# Set the ulimit variable if you need defaults to change. 
# Example: ULIMIT="-n 4096" 
ULIMIT="-n 15000" 

/etc/security/limit.conf von PAM verwendet wird, so ist es shoud nichts mit www-data (es ist nologin Benutzer) zu tun.

+4

wo ist/etc/default/nginx? Ich sehe nur /etc/nginx/nginx.conf, kein Glück Einstellung worker_rlimit_nofile – SathiyaS

19

auf CentOS (auf 7.x getestet):

Datei erstellen /etc/systemd/system/nginx.service.d/override.conf mit folgendem Inhalt:

[Service] 
LimitNOFILE=65536 

Reload systemd-Daemon mit:

systemctl daemon-reload 

Fügen Sie diese auf Nginx Konfigurationsdatei:

worker_rlimit_nofile 16384; (has to be smaller or equal to LimitNOFILE set above) 

Und schließlich neu starten Nginx:

systemctl restart nginx 

Sie können überprüfen, ob es mit cat /proc/<nginx-pid>/limits funktioniert.

+1

Ich bestätige, dass dies auch mit ** Ubuntu Xenial ** funktioniert. Danke für die Annäherung. – cepharum

+0

vielleicht eines Tages werden wir eine 'worker_rlimit_nofile' für den Master-Prozess des Nginx haben: vielleicht master_rlimit_nofile – davesave

+0

Das funktioniert auch für RHEL! –

Verwandte Themen