nginx提示setrlimit(RLIMIT_NOFILE, 65535) failed (13: Permission denied)

解决Nginx setrlimit(RLIMIT_NOFILE) 权限问题

这个错误表明Nginx进程尝试提高文件描述符限制时被系统拒绝。以下是完整的解决方案:

根本原因

Nginx工作进程(worker process)以非特权用户(通常是nginxwww-data)运行时,无法将文件描述符限制提高到65535,因为:

  1. 非root用户受系统限制约束

  2. 默认用户限制通常较低(如1024)

  3. 需要多层面调整才能生效

完整解决方案

1. 临时解决方案(快速测试)

bash

复制

下载

# 临时提高限制(重启后失效)
sudo prlimit --pid $(pgrep -f "nginx: worker" | head -1) --nofile=65535:65535

2. 永久解决方案(推荐)

2.1 调整系统全局限制

bash

复制

下载

# 编辑系统限制配置文件
sudo nano /etc/sysctl.conf

# 添加或修改以下内容
fs.file-max = 65535
2.2 修改用户限制

bash

复制

下载

# 编辑用户限制配置
sudo nano /etc/security/limits.conf

# 添加以下内容(根据实际Nginx用户)
nginx soft nofile 65535
nginx hard nofile 65535
www-data soft nofile 6553

你可能感兴趣的:(nginx,前端,javascript)