烧瓶+nginx=连接被拒绝

烧瓶+nginx=连接被拒绝,nginx,Nginx,嗨,我正在尝试让nginx和flask在我的本地机器上运行 我可以使用nginx很好地处理静态文件,但我一直遇到uwsgi的连接问题 我的nginx: } /etc/uwsgi/apps available/uwsgi.ini: 但是如果我尝试localhost/,我会在nginx错误日志中发现: [error] 1021#0: *16 connect() to unix:/tmp/uwsgi.sock failed (111: Connection refused) while connect

嗨,我正在尝试让nginx和flask在我的本地机器上运行

我可以使用nginx很好地处理静态文件,但我一直遇到uwsgi的连接问题

我的nginx:

}

/etc/uwsgi/apps available/uwsgi.ini:

但是如果我尝试localhost/,我会在nginx错误日志中发现:

[error] 1021#0: *16 connect() to unix:/tmp/uwsgi.sock failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:/tmp/uwsgi.sock:", host: "localhost"
我尝试过更改权限,但似乎无法解决此问题。有人有什么建议吗

任何帮助都将不胜感激。

一些想法:

你确定uWSGI正在运行吗? 在可用的应用程序中编辑该文件后,是否重新加载/重新启动该文件? 根据apps available的名称判断,是否存在另一个名为apps enabled的目录,您需要在其中放置指向apps available中文件的符号链接? 是否有一个日志文件,其中uWSGI正在写入自己的错误消息?
您可以将lsof与uWSGI pid一起使用,例如lsof-n-p12345,以查看它打开了哪些文件。您应该可以在/tmp中看到套接字,也可以在/var/log中看到日志文件。因此,我的uwsgi.ini文件通过启用的站点进行符号链接。如果我尝试使用uwsgi-uwsgi.ini运行该文件,我会得到以下输出:如果我以root用户身份运行它,它看起来很好。可能需要更改的是权限还是所有权?是的,这是套接字文件/tmp/uwsgi.sock的权限问题。unlink:Permission denied[socket.c]表示它试图删除现有套接字以创建新的套接字,但由于权限错误而失败。bind:Address已在使用[socket.c]意味着它无法在该套接字上侦听,原因可能与此相同。通常不会在/tmp中创建套接字,因为该服务器上的任何人或任何其他人都可以创建一个名为/tmp/uwsgi.sock的文件,然后就座。您应该创建一个目录,其中只有运行uwsgi的用户可以写入,并告诉uwsgi在那里创建其套接字。这样一个目录通常是在/var/run下为系统守护进程创建的,或者是在您的主目录下为个人服务创建的。由于其他人有这样的功能,因此标题中的公式是错误的。必须是flask+nginx+您的配置=连接被拒绝-
[uwsgi]
plugins=python
vhost=true
socket=/tmp/uwsgi.sock
[error] 1021#0: *16 connect() to unix:/tmp/uwsgi.sock failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:/tmp/uwsgi.sock:", host: "localhost"