Nginx文件描述符限制

4

如何增加nginx的文件描述符限制?

有几种方法可以增加文件描述符:

  1. 编辑 /etc/security/limits.conf 并为nginx用户设置nofile软限制和硬限制。

  2. /etc/default/nginx 中设置 $ULIMIT。nginx的init.d脚本会设置 ulimit $ULIMIT https://gist.github.com/aganov/1121022#file-nginx-L43

  3. nginx.conf 中设置 worker_rlimit_nofile http://wiki.nginx.org/NginxHttpMainModule#worker_rlimit_nofile

在使用init.d脚本在启动时启动nginx时,limits.conf中的设置是否会影响nginx?

我必须在init脚本中使用ulimit $ULIMIT还是可以使用worker_rlimit_nofile替代?

在使用init脚本中的ulimit $ULIMIT时,我是否仍然需要使用worker_rlimit_nofile来为每个工作进程设置限制?

谢谢。


注意,这可能会产生副作用。更多信息请参见ServerFault上的这个很棒的答案 - kaiser
2个回答

3
讨论每个项目:
1)/etc/security/limits.conf仅由pam_limits处理。从init.d启动的进程通常不使用pam_limits。需要在服务脚本中在init级别设置ulimit,例如。
2)默认的nginx init脚本没有这个设置(至少对于官方的Red Hat / CentOS软件包)。但更改此init脚本是一种有效的方法,尽管不建议这样做。
3)worker_rlimit_nofile仅在进程级别起作用,它受限于系统的硬限制(ulimit -Hn)。它用于动态更改nginx进程可以处理的最大文件描述符,通常由系统的软限制定义。

3
正确的提高限制的方法是设置worker_rlimit_nofile。

1
你是怎么推导出来的? - Brian
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Jarrett

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接