在设置uwsgi和nginx时,我是否必须自己创建套接字文件?

时间:2014-08-20 18:14:57

标签: django nginx uwsgi

跟进本教程,设置uwsgi + nginx来提供我的django应用程序

uwsgi-docs

尽管它假设用户理解了一些关于uwsgi的东西,但一切顺利!

在假设使用套接字而不是端口来提供页面的部分中,这是指令

编辑 mysite_nginx.conf (我可以这样做);

server unix:///path/to/your/mysite/mysite.sock; # for a file socket
# server 127.0.0.1:8001; # for a web port socket (we'll use this first)

我的问题/困惑,什么是" mysite.sock" 是我应该创建的文件还是什么?有什么内容?

3 个答案:

答案 0 :(得分:2)

.sock文件是unix套接字(也称为IPC套接字),并以编程方式创建,以允许在进程之间交换信息。在这种情况下,mysite.sock允许在uwsgi和nginx之间交换信息。适用时,套接字可替代地用于具有更多开销的端口。出于相似的目的,请考虑流程之间的“管道”。

This article特别帮助我更有效地理解套接字。读一读!

答案 1 :(得分:1)

该套接字文件将由uwsgi自动创建。如果您在documentation you linked to中进一步查看,则会找到将以下行放入mysite_uwsgi.ini的说明:

socket          = /path/to/your/project/mysite.sock

这告诉uwsgi在哪里为你的应用程序创建套接字。您的nginx配置中的以下行:

server unix:///path/to/your/mysite/mysite.sock; # for a file socket

告诉nginx在哪里寻找套接字。每个配置文件中的两个路径必须相同(或解析为同一文件)。

正如chuk2bp所提到的,套接字文件是一个通信通道。在这种情况下,它允许nginx与uwsgi交谈。

答案 2 :(得分:0)

@Louis的答案

服务器unix:///path/to/your/mysite/mysite.sock; #用于文件套接字

您只需更改

unix:// / path / to / your / mysite /mysite.sock;

unix:// / home / h / workspace / sun-asterisk / POC-makeup / deploy-tutorial / nginx-tutorial / mysite /mysite.sock;

注意: / home / h / workspace / sun-asterisk / POC-makeup / deploy-tutorial / nginx-tutorial / mysite 是我的项目路径。 >