我使用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错误的第一位。