我们有一个带有 Nginx(1.18)的 Ubuntu 服务器(22.04)。
ulimit -n
返回1024并且在/etc/nginx/nginx.conf中有以下设置:
user www-data;
worker_processes auto;
events {
worker_connections 1024;
}
我们阅读了一些有关“优化 Nginx”、文件描述符、worker_connections 等的文档和各种博客。例如:https://docs.nginx.com/nginx-management-suite/admin-guides/configuration /配置网关/
您可能还想调整进程可以打开的最大文件描述符数量 (worker_rlimit_nofile),以与工作连接数量保持一致。请注意,rlimit_nofile 是系统设置,因此请务必检查 Linux 发行版的用户限制,因为这些限制可能更加严格。
假设我们需要将工作连接数增加一倍,从1024增加到2048。如果我们要修改配置(并重新启动 nginx):
user www-data;
worker_processes auto;
worker_rlimit_nofile 2048; // <<< added
events {
worker_connections 2048; // <<< changed
}
ulimit -n
考虑到返回1024就足够了吗?或者这些更改还不够,不会产生效果,需要通过运行以下命令来增加系统对文件描述符的软限制:
ulimit -n 2048
或者将以下行添加到 shell 配置文件 (例如 /etc/security/limits.conf):
www-data soft nofile 2048
www-data hard nofile 2048
(不确定这是否就是全部,或者是否还有一些配置文件需要修改)