worker_rlimit_nofile将为工作进程设置文件描述符的限制,与运行Nginx的用户相反.如果在此用户下运行的其他程序无法正常处理文件描述符的用完,那么您应该将此限制设置为略低于用户的限制.
首先,什么是使用您的文件描述符?
>与客户端的每个活动连接
>使用proxy_pass?这将打开一个到主机的套接字:处理这些请求的端口
>使用proxy_pass到本地端口?那是另一个打开的插座. (对于该过程的所有者)
> Nginx提供的静态文件
为什么每个工人的限制低于操作系统限制?
这由操作系统控制,因为工作人员不是机器上运行的唯一进程.要为运行Nginx的用户更改它,请参阅下文.如果您的工作人员用尽了所有进程可用的所有文件描述符,那么这将是非常糟糕的,不要设置限制以便可行.
#/etc/sysctl.conf
#This sets the value you see when running cat /proc/sys/fs/file-max
fs.file-max = 65536"
#/etc/security/limits.conf
#this sets the defaults for all users
* soft nofile 4096
* hard nofile 4096
#This overrides the default for user `usernamehere`
usernamehere soft nofile 10240
usernamehere hard nofile 10240
在那些安全限制更改后,我相信我仍然必须使用ulimit增加用户的softlimit.
我如何找出我现在的限制?
ulimit -a将显示与您运行它的用户相关的所有限制.