Nginx报错:socket failed (13: Permission denied) while connecting to upstream

Nginx报错:connect() to unix:/run/uwsgi/app/xxxx/socket failed (13: Permission denied) while connecting to upstream

原因是Linux中存在用户和用户组的概念,平常用windows感知不强,只知道设置了用户后开机要登录。
实际上每个进程都有所属的用户和用户组。
项目中,如果uwsgi设置了用户和用户组,当它启动后,pid和socket是属于这个用户和用户组的(如果不设置,默认就是www-data),nginx的用户(默认是www-data)如果不在这个用户组内就会报没有权限。报错如下

connect() to unix:/run/uwsgi/app/xxxx/socket failed (13: Permission denied) while connecting to upstream

首先查看当前nginx的用户,查看user参数的值。

cat /etc/nginx/nginx.conf

查看当前用户组中是否有nginx用户权限

 cat /etc/group | grep "$USER:"

如果不包含www-data,则需要添加

sudo usermod -a -G $USER www-data  
# www-data是nginx的用户,可以在/etc/nginx/nginx.conf中的user变量查看当前nginx用户。

你可能感兴趣的:(nginx,linux,运维)