前言
自己在本地用nginx 配置了反向代理,保存配置,重启时报错:nginx:[emerg] getgrnam(“root”) failed in /conf/nginx.conf:1,下面来看下如何解决。
问题描述
错误提示
原因解析
根据错误提示,错误在nginx.conf文件中,那去配置文件中瞅一瞅啦:
参考文档:nginx官方文档
我的nginx.conf :
## 此处出现了【root】
user root;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
# nginx的监听端口 (此处为管理后台前端地址的访问端口)
listen 80;
# server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /opt/test/dist;
proxy_read_timeout 1500; # 秒
proxy_send_timeout 1500;
send_timeout 1500;
index index.html index.htm;
}
location /api/v1 {
rewrite ^/api/v1(/.*)$ $1 break;
proxy_read_timeout 1500; # 秒
proxy_send_timeout 1500;
send_timeout 1500;
proxy_pass http://ip:90000;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
include servers/*;
}
在nginx 文档中提到:
如果group 省略,就认为组名和用户名一样;
我定义了root用户,那么nginx认为我的组就是root 了,然而事实并不是这样,来看root账户对应的组:
在终端输入命令:
dscacheutil -q group | grep root
或者是 id root
查看结果:
从查询结果可以看到root 用户属于 admin组,那我的写法就不对了,它找不到root组,所以需要改下配置文件:
user root admin;
重启nginx ,问题解决!
另: 在网上找到一种解决方案:将admin 换成owner ,问题也得到解决!
经测试,写对root 用户所属的组(比如 everyone 、wheel、staff)再启动也是正常的!
疑问:
mac os中的owner 用户组跟admin用户组是一样的意义吗? 为什么owner也可以成功,但是owner下边没有root用户!!!
截图如下:
# 查看所有用户和用户组
dscacheutil -q group
遇到的其它问题
nginx: [warn] the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /usr/local/etc/nginx/nginx.conf:1
原因是 : 当前用户对.nginx 二进制文件没有操作权限
解决办法: 命令前加 sudo ,用root权限操作
sudo ./nginx -s reload
总结
对nginx.conf 的配置项有了些许的了解,期待各位大佬帮小弟分析下问题,在此谢过~~