有人能解释一下为什么在启动 Nginx 之前使用“ulimit”吗?
ulimit -SHn 51200
/usr/local/webserver/nginx/sbin/nginx
答案1
Nginx 消耗大量套接字。它是一个单进程 Web 服务器(好吧,您可以运行多个“工作”实例,但基本上它们都像单进程 Web 服务器一样运行),并且能够接受许多连接(每个连接消耗一个套接字)并代理到许多后端(每个连接再次消耗一个套接字)。因此,Nginx 很容易超过每个进程 1024 个文件描述符的默认限制。这意味着,需要增加 Nginx 的这个限制,因此ulimit
。
答案2
ulimit 是一个 *nix 命令,用于限制资源。Alaz 很好地解释了 Nginx 很容易超过 1024 个文件描述符的默认限制。必须通过 ulimit 命令提高此限制,才能让 Nginx 按照您希望的方式运行。
ulimit -SHn 51200
将打开文件描述符的数量限制为 51200。
以下是 ulimit 命令的细分:
-S
--> 使用软资源限制
-H
--> 使用硬资源限制
-n
--> 打开文件描述符的最大数量