在其他文件夹中创建uWSGI Socket?

时间:2012-09-26 14:02:13

标签: django nginx uwsgi

我想在项目文件夹中创建uWsgi套接字,而不是在/ tmp /

中创建

这是我的uWSGI配置

[uwsgi]
socket = /tmp/uwsgi.sock #I want this in any other folder
#say in /home/me/Desktop/myDjangoApp/
chmod-socket = 666
processes = 1
master = true
vhost = true
no-site = true

但每当我用我文件夹中创建的套接字重新启动uWSGI时, [失败] 。 我不能在其他文件夹中创建uwsgi.sock吗?

3 个答案:

答案 0 :(得分:5)

我使用以下uwsgi配置(缩减为相关部分):

[uwsgi]
uid = moin
gid = www-data
socket = /var/run/moin/uwsgi.sock
hook-as-root = exec:mkdir -vp /var/run/moin/; chown -v moin:www-data /var/run/moin/

请注意在服务器删除权限之前使用用户权限创建/ var / run / wiki /目录的挂钩。无论你想要什么,都可以调用目录,moin是我的wiki引擎的名称。

在较新的发行版上,/ var / run指向tmpfs位置,以便在重新启动后删除任何手动创建的目录。与添加/修改另一个init脚本相比,此文件中的钩子定义可使您的配置保持紧凑。

答案 1 :(得分:1)

好吧,我找到了另一种解决方案。我在localhost中创建了套接字

这是我的uwsgi文件

[uwsgi]
uid = www-data
gid = www-data
master = 1
workers = 2
plugins = python
socket = 127.0.0.1:3100
enable-threads = true
processes = 2
pythonpath = <>
wsgi-file = <>
chdir = <>

答案 2 :(得分:1)

unix套接字必须遵守文件权限方案。

在第二个配置中,您正在设置uid = www-data和gid = www-data。 套接字文件必须可以通过www-data写入,而nginx必须能够读/写/tmp/uwsgi.sock

另一方面,如果您发现困难,使用host:port(tcp套接字)也会起作用,您似乎可以这样做。