我使用 Ansible 安装了 Nginx。为了在 Centos7 上安装,我使用了 yum 包,所以它默认以 root 用户身份运行。我希望它在 Centos 框中以不同用户(前 nginx 用户)的身份启动和运行。当我尝试使用其他用户运行它时,我收到以下错误:
nginx.service 的作业失败,因为控制进程以错误代码退出。有关详细信息,请参阅“systemctl status nginx.service”和“journalctl -xe”。
我知道不建议以 root 身份运行。那么我该如何解决这个问题并以非 root 用户身份运行 nginx。谢谢
原文由 Sarith 发布,翻译遵循 CC BY-SA 4.0 许可协议
在您的
/etc/nginx/nginx.conf
中添加/更改以下内容:您应该递归地创建用户并授予对 webroot 目录的权限。
这样只有主进程运行为
root
。 因为: 只有 root 进程可以监听 1024 以下的端口。网络服务器通常运行在端口 80 和/或 443。这意味着它需要以 root 身份启动。关于主进程和工作进程的 文档 中的注释:
以非 root 用户身份运行主进程:
更改通过以下 Nginx 指令指定路径的文件的所有权:
将监听指令更改为1024以上的端口,以所需用户登录并通过
nginx -c /path/to/nginx.conf
运行nginx