2

我想在我的项目文件夹中创建 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 时,它[fails]。我不能在其他文件夹中创建 uwsgi.sock 吗?

4

3 回答 3

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 位置,以便在重新启动后删除任何手动创建的目录。与添加/修改另一个初始化脚本相比,此文件中的挂钩定义使您的配置保持紧凑。

于 2016-06-08T00:32:23.200 回答
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 = <>
于 2012-09-28T08:22:38.870 回答
1

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

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

另一方面,如果你觉得这很困难,使用 host:port (tcp sockets) 也可以,而且你似乎可以这样做。

于 2012-09-28T16:18:50.987 回答