Nginx 中怎么使用 ulimit 命令永久修改 Linux 文件描述符数量

星瑶吖_3775

星瑶吖_3775

2026-10-09

245人浏览

原创

nginx 高并发需永久提升文件描述符限制:先确认运行用户及当前 limits,再根据启动方式分别配置 /etc/security/limits.conf(传统方式)或 systemd service 的 limitnofile(systemd 方式),并同步调整 nginx.conf 中 worker_connections。

nginx 中怎么使用 ulimit 命令永久修改 linux 文件描述符数量

Nginx 本身不直接调用 ulimit,它依赖系统为 worker 进程分配的文件描述符限制。要让 Nginx 能打开足够多的连接(比如高并发场景),必须**永久提升其运行时可用的文件描述符数量**,关键在于修改 Nginx 进程启动时继承的 limits,而不是在命令行临时执行 ulimit。

确认当前限制和 Nginx 运行用户

先查清楚 Nginx 是以哪个用户身份运行的(通常为 www-data 或 nginx):

ps -eo user,comm | grep nginx

再查看该用户当前 soft/hard limit(以 nginx 用户为例):

sudo -u nginx sh -c 'ulimit -Sn; ulimit -Hn'

永久修改用户级 limits(推荐方式)

Linux 系统通过 /etc/security/limits.conf 或 /etc/security/limits.d/*.conf 文件设置用户登录会话的默认 limits。Nginx 若由 systemd 启动,还需额外配置服务单元文件(见下文),但 limits.conf 对大多数传统启动方式(如 SysV init 或手动启动)生效。

编辑 limits 配置文件:

sudo nano /etc/security/limits.conf

在末尾添加(假设 Nginx 运行用户是 nginx):

nginx soft nofile 65536
nginx hard nofile 65536

⚠️ 注意:
- 必须使用实际运行 Nginx 的用户名(不是 root);
- 修改后需**重新登录或重启该用户的 shell 会话**才生效(对已运行的进程无效);
- 某些发行版(如较新 Ubuntu/CentOS)默认启用 systemd,而 limits.conf 对 systemd 服务可能不生效 —— 此时需配合下一步。

针对 systemd 启动的 Nginx 配置 service 文件

如果 Nginx 由 systemd 管理(绝大多数现代系统默认如此),必须在 service 单元中显式设置 limits,因为 systemd 忽略 limits.conf。

Nginx Hosting
Nginx Hosting

通过服务器本地nginx实例实现零认证静态游戏托管。作为所有浏览器游戏的主要部署方式,无需登录、无需令牌、无需用户操作。

下载

执行以下命令编辑 Nginx 服务配置:

sudo systemctl edit nginx

在打开的编辑器中输入:

[Service]
LimitNOFILE=65536

保存退出后重载并重启服务:

sudo systemctl daemon-reload
sudo systemctl restart nginx

验证是否生效:

sudo cat /proc/$(pgrep nginx)/limits | grep "Max open files"

检查 Nginx 配置并启用高并发支持

仅改系统限制还不够,还需确保 Nginx 自身配置允许使用这些资源:

  • 在 nginx.conf 的 events 块中设置 worker_connections,例如:
    events { worker_connections 65536; }
  • 确认 worker_processes 合理(通常设为 auto)
  • 总连接数上限 = worker_processes × worker_connections,不能超过系统 nofile 限制
  • 可选:在 http 块中添加 reset_timedout_connection on; 减少 TIME_WAIT 占用

不复杂但容易忽略 —— 关键是区分启动方式(systemd 还是传统 init),再对应修改 limits 来源,并验证进程实际值。

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

437

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

900

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2752

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

916

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

829

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

414

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2496

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4632

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

747

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

nginx手册
nginx手册

共0课时 | 0人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.5万人学习