uWSGI未在指定路径上创建Unix套接字

时间:2018-08-25 19:42:23

标签: django nginx uwsgi

我已经使用Nginx和uWSGI多次,但是我从未见过即使显式指定套接字也不会被创建。

我的 uWSGI配置/etc/uwsgi/sites/my_site.ini)非常简单:

[uwsgi]
project = my_site
base = /root

chdir = %(base)/%(project)
home = %(base)/Env/%(project)
module = %(project).wsgi:application

master = true
processes = 5

socket = /run/uwsgi/%(project).sock
chmod-socket = 664
vacuum = true

可见,uWSGI必须创建具有644权限的套接字(尽管有些建议它应该是666)。

Nginx服务器配置/etc/nginx/nginx.conf)也非常简单:

server {
    listen      80;
    server_name mysite.com www.mysite.com;
    location /static/ {
        root /root/my_site;
    }

    location / {
        include uwsgi_params;
        uwsgi_pass unix:/run/uwsgi/my_site.sock;
    }
}

uwgsi.service(启动脚本)(在CentOS上为/etc/systemd/system/uwsgi.service):

[Unit]
Description=uWSGI Emperor service
After=syslog.target

[Service]
ExecStart=/usr/uwsgi --emperor /etc/uwsgi/sites
Restart=always
KillSignal=SIGQUIT
Type=notify
StandardError=syslog
NotifyAccess=all

[Install]
WantedBy=multi-user.target

完成这些配置后,我执行了以下命令:

sudo systemctl daemon-reload
sudo systemctl restart uwsgi
sudo systemctl restart nginx
sudo systemctl status uwsgi
sudo systemctl status nginx

根据上述命令,一切都很好,但是Nginx访问网站时返回了502错误的网关错误。

因此,我检查了/var/log/nginx/error.log/

  

2018/08/25 19:33:10 [crit] 14920#0:* 3 connect()到unix:/run/uwsgi/my_site.sock在连接到上游时失败(2:没有这样的文件或目录) ,客户端:xx.xxx.xxx.xx,服务器:my_site.com,请求:“ GET / HTTP / 1.1”,上游:$

如上所示,由于某种原因,uWSGI不在/run/uwsgi/目录中创建套接字...

我确定/run/uwsgi/不会返回任何内容,因此不会在ls /run/uwsgi/上创建套接字。

权限

sudo usermod -a -G root nginx;chmod 710 /root

主要问题:

uWSGI没有在上述配置中的指定路径上创建unix套接字,这可能是问题所在吗?

有什么可能的原因吗?

0 个答案:

没有答案