我复制了nginx.conf示例放到我的 ubuntu 12.04 机器上(我不知道其他配置文件放在哪里。我是 nginx 新手)。当我尝试启动 nginx 时,出现以下错误:
abe-lens-laptop@abe:/etc$ sudo service nginx start
Starting nginx: nginx: [emerg] getpwnam("www") failed in /etc/nginx/nginx.conf:1
nginx: configuration file /etc/nginx/nginx.conf test failed
这个错误是什么意思?我该如何修复它?我找到了这篇文章,但我的用户已经设置为 www www(如果您在链接文件中看到)如何更改 NGINX 用户?
答案1
您在配置中指定的用户www
不存在。请创建该用户,或选择已存在的用户。
答案2
您的另一个选择(如果您不想创建新用户)是用以下内容替换 nginx.conf 中的用户字段:
user nobody;
答案3
创建www
用户。在 Ubuntu 上,应使用以下命令和标志完成此操作:
sudo adduser --system --no-create-home --shell /bin/false --group --disabled-login www
答案4
虽然 Michael Hampton 的答案是正确的,但这只是答案的一部分。更完整的版本应该是:
- 检查用户是否存在
- 还要检查你使用哪个用户启动docker容器
如果你这样做:
docker -u 0 ....
那么即使该用户存在于主机系统上,也会出现同样的消息。将 -u 后面的值更改为用户 nginx 的 id 即可解决此问题。