ubuntu里配置nginx访问flask+uwsgi请求链接返回502:connect() to unix:/home/ubuntu/myproject/myproject.sock failed

ubuntu里配置nginx访问uwsgi,请求的时候502,查看日志 tail -f /var/log/nginx/error.log报错connect() to unix:/home/ubuntu/myproject/myproject.sock failed (13: Permission denied) while connecting to upstream,。。。,困扰我半天,我决定要记录下

报错内容为:
connect() to unix:/home/ubuntu/myproject/myproject.sock failed (13: Permission denied) while connecting to upstream, client: 122.XX.XX.X, server: 175.XX.XX.XX, request: “GET / HTTP/1.1”, upstream: “uwsgi://unix:/home/ubuntu/myproject/myproject.sock:”, host: "175.XX.XX.XX:5000"

我做了如下操作,直到最后一步才搞定:

可以直接先试最后一步(从7开始)

1.使用id命令查看用户的私有组、默认组、基本,我当前用户名是ubuntu:

 id www-data

输出:
uid=33(www-data) gid=33(www-data) groups=33(www-data),500(ubuntu)
2. 使用usemod的命令可以把ubuntu用户加入到www-data组里:

 sudo usermod -a -G ubuntu www-data

3.再次查看:

 id www-data

输出:
uid=33(www-data) gid=33(www-data) groups=33(www-data),500(ubuntu)

4.查看报错对应文件所属的用户和用户组

namei -nom /home/ubuntu/myproject/myproject.sock

输出:
f: /home/ubuntu/myproject/myproject.sock·
drwxr-xr-x root root /
drwxr-xr-x root root home
drwx------ ubuntu ubuntu ubuntu
drwxrwxr-x ubuntu ubuntu myproject
srw-rw---- ubuntu www-data myproject.sock

5.修改报错文件所属文件夹权限:

 sudo chmod 755 /home/ubuntu/myproject/

6.一气之下,给报错文件的所有权限:

sudo chmod -R 777 /home/ubuntu/myproject/myproject.sock

7.查看nginx配置文件:

cat /etc/nginx/nginx.conf

输出:

8.修改nginx配置文件的用户为当前用户ubuntu:

sudo vim /etc/nginx/nginx.conf

9.重启nginx:

sudo systemctl restart nginx

搞定报错!!!!


版权声明:本文为qq_27582541原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。