Sur CentOS (testé sur 7.x) :
Créer le fichier /etc/systemd/system/nginx.service.d/override.conf
avec le contenu suivant :
[Service]
LimitNOFILE=65536
Rechargez le démon systemd avec :
systemctl daemon-reload
Ajoutez ceci au fichier de configuration Nginx :
worker_rlimit_nofile 16384; (has to be smaller or equal to LimitNOFILE set above)
Et enfin redémarrer Nginx :
systemctl restart nginx
Vous pouvez vérifier que cela fonctionne avec cat /proc/<nginx-pid>/limits
.
J'ai trouvé la réponse en quelques minutes après avoir posté cette question...
# 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
est utilisé par PAM, il ne devrait donc rien avoir à voir avec www-data
(c'est un utilisateur nologin).