nginx unix域套接字错误

我使用fedora 17,当我使用unix域套接字来安装nginx和uwsgi时,当我把套接字放在一个具有适当权限的目录中时,没关系,但是当我把套接字放在/tmp ,会导致nginx错误:

 connect() to unix:/tmp/MySite.sock failed (2: No such file or directory) while connecting to upstream 

该文件确实存在,并具有对nginx用户的读/写权限。 但是造成这个错误的原因,真的让我发疯了,有人可以弄清楚。

您不能在/tmp放置用于进程间通信的套接字。

出于安全原因,Fedora的最新版本使用命名空间临时目录 ,这意味着每个服务都看到完全不同的/tmp ,并且只能在该目录中看到自己的文件。

要解决此问题,请将套接字放在不同的目录中,例如/run (以前称为/var/run )。

是! 这帮助!

看到来自uwsgi的check-startup-logs消息,但在启动日志中没有数据,无法find发生的事情。 原来,我需要将袜子文件更改为非/ tmp位置,并添加:

catch-exceptions = true

到wsgi的ini文件。 事实certificate,我已经指定日志文件处理程序的位置到一个不存在的目录,所以它不能logging错误的第一位。