CentOS の場合 (7.x でテスト済み):
ファイル /etc/systemd/system/nginx.service.d/override.conf
を作成 次の内容で:
[Service]
LimitNOFILE=65536
systemd デーモンをリロード:
systemctl daemon-reload
これを Nginx 構成ファイルに追加します:
worker_rlimit_nofile 16384; (has to be smaller or equal to LimitNOFILE set above)
最後に Nginx を再起動します:
systemctl restart nginx
cat /proc/<nginx-pid>/limits
で動作することを確認できます .
この質問を投稿してから数分で答えが見つかりました...
# 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
は PAM で使用されるため、www-data
とは関係ありません。 (nologin ユーザーです)。