修改 Nginx 启动用户

本文记录修改 Nginx 启动用户的过程,等保整改可参考。

使用 root 用户编译安装,默认用户为 root,根据要求应调整为其他用户

  1. 配置用户和用户组
1
2
groupadd -r nginx
useradd -r -g nginx -s /sbin/nologin -d /var/nginx -c "Nginx web server" nginx
  1. 调整权限(以下根据实际情况调整路径)
1
2
3
4
# 调整日志目录权限
chown -R nginx:nginx /data/logs/nginx
# 调整默认的日志目录权限
chown -R nginx:nginx /usr/local/nginx/logs

根据参考资料,nginx 检查这个权限在读取配置文件之前,根据实践,Nginx 1.24.0 版本如果不给相应权限,会启动失败
3. 调整 Nginx 配置文件

1
vim /usr/local/nginx/conf/nginx.conf

默认是注释了 user 配置,取消注释,改为你需要修改的启动用户

1
2
#user  nobody;
user nginx;
  1. 调整 Nginx 服务配置文件
1
2
3
4
vim /lib/systemd/system/nginx.service
# 在 [Service] 块下添加这两行
User=nginx
Group=nginx
  1. 重启 Nginx
1
2
systemctl daemon-reload
systemctl restart nginx

如果启动失败,一般是由于某些文件没有权限导致的,使用 systemctl status nginx 可以看到失败原因,和无权限的具体内容
失败示例
6. 验证是否生效

1
ps aux | grep nginx

更改用户生效图片


参考资料:
linux - Nginx still try to open default error log file even though I set nginx config file while reloading - Stack Overflow