gpt4 book ai didi

sockets - Nginx和uWSGI : Proper permissions setup for 502 Bad Gateway issue

转载 作者:行者123 更新时间:2023-12-03 12:02:35 26 4
gpt4 key购买 nike

在uWSGI中,如果我将套接字位置更改为/tmp/api,则该网站将呈现。但是,如果将套接字地址更改为/srv/www/api/,则会收到502网关错误。
我相信这是由于有关/srv文件夹和Nginx/uWSGI用户的权限问题所致。
/var/log/nginx/error.log 中:

*1 connect() to unix:///srv/www/api/app.sock failed (2: No such file or directory) while connecting to upstream, client: xxx.xxx.xxx.xxx, server: api.example.com, request: "GET / HTTP/2.0", upstream: "uwsgi://unix:///srv/www/api/app.sock:", host: "api.example.com"
Flask项目代码位于 /srv/www/api中。我以 username用户身份登录。
权限:
$ ll -ld /srv/www/api/
drwxrwxr-x 4 www-data www-data 4096 Jun 28 20:52 /srv/www/api/
$ ll -ld /srv/www
drwxrwxr-x 4 username www-data 4096 Jun 27 21:41 /srv/www
$ ll -ld /srv
drwxrwxr-x 4 username username 4096 Jun 27 21:37 /srv
$ ll -ld /tmp
drwxrwxrwt 9 root root 4096 Jun 28 23:05 /tmp
用户组:
$ groups username
username : username sudo dev
$ groups www-data
www-data : www-data dev
$ grep 'dev' /etc/group
dev:x:1001:username,www-data
我有几个要设置为 dev组的用户。目的是使该组中的用户能够读和写 /srv,而不必同时位于根组中(这是一种不好的做法吗?)。
/srv/www/api/app.ini :
[uwsgi]
module = wsgi:app

master = true
processes = 5

socket = /tmp/app.sock
chmod-socket = 660
vacuum = true

die-on-term = true
/etc/nginx/sites/sites-available/api.example.com (位置部分):
location / {
include uwsgi_params;
uwsgi_pass unix:/tmp/app.sock;
}
有没有一种方法可以修复我的权限设置,以便:
  • 可以在该文件夹
  • 中创建套接字
  • 没有sudo的dev组中的用户也将能够读写/srv文件夹和子目录
  • 最佳答案

    我想通了。我最终将文件夹的所有者设置为:

    chown -R username:www-data /srv/www/api
    每次更改后,我还确保重新启动systemctl服务。我不记得之前做过这件事,所以很可能是即使进行了所有更改之后,仍然没有任何效果的原因。我只重新启动了Nginx,而不是服务本身-负责创建套接字的服务。
    要重新启动systemctl服务:
    sudo systemctl restart <service_name>

    关于sockets - Nginx和uWSGI : Proper permissions setup for 502 Bad Gateway issue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62644037/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com