您的位置:首页 > 运维架构 > Nginx

linux 下 nginx 的最大文件打开设置

2018-02-17 09:57 295 查看
先设置好linux 系统的 limit, 见其他博文

nginx 也有自己的 limit 设置:

1、 nginx.conf 设置 worker_rlimit_nofile

例如: worker_rlimit_nofile 65535;

同时连接的数量受限于系统上可用的文件描述符的数量,因为每个套接字将打开一个文件描述符。 如果NGINX尝试打开比可用文件描述符更多的套接字,会发现error.log中出现Too many opened files的信息。
使用ulimit检查文件描述符的数量: ulimit -n

现在,将此值增加到大于worker_processes * worker_connections的值。 应该是增加当前worker运行用户的最大文件打开数值。

NGINX提供了worker_rlimit_nofile指令,这是除了ulimit的一种设置可用的描述符的方式。 该指令与使用ulimit对用户的设置是同样的效果。此指令的值将覆盖ulimit的值

2、修改 nginx.service

# vim /usr/lib/systemd/system/nginx.service

增加

[Service]
LimitNOFILE=65536


然后

systemctl daemon-reload
systemctl restart nginx


3、查看下当前实际的限制

ps -ef | grep nginx
cat /proc/<pid>/limit


4、ps, 如果开启的端口很多, 可能导致nginx 服务启动超时失败

可修改 nginx.service

加入:

TimeoutStartSec=120


表示,允许服务启动使用 120s, 默认是 90s

修改后 systemctl daemon-reload
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: