小编Utk*_*nha的帖子

Django频道错误 - 无法导入BACKEND'asgi_redis.RedisChannelLayer'

我已经安装了Django-Channels但是在运行daphne-server时我得到的错误如下:

File "/usr/local/lib/python2.7/dist-packages/channels/asgi.py", line 36, in make_backend
"Cannot import BACKEND %r specified for %s" % (self.configs[name]['BACKEND'], name)

channels.asgi.InvalidChannelLayerError: Cannot import BACKEND 'asgi_redis.RedisChannelLayer' specified for default
Run Code Online (Sandbox Code Playgroud)

我的settings.py是:

CHANNEL_LAYERS = {
"default": {
    "BACKEND": "asgi_redis.RedisChannelLayer",
    "CONFIG": {
        "hosts": [os.environ.get('REDIS_URL', 'redis://X.X.X.X:6379')],
    },
    "ROUTING": "MyProject.routing.channel_routing",
},
}
Run Code Online (Sandbox Code Playgroud)

需要帮助来解决此错误.

python django redis django-channels

9
推荐指数
4
解决办法
8692
查看次数

如何配置Apache在Django频道中运行ASGI?是否需要Apache?

我构建了一个django项目,并使用Apache-WSGI组合将其部署到生产中.为此,我添加了 apache2.conf,如下所示:

WSGIScriptAlias / /home/ubuntu/MyProject/MyProject/wsgi.py
WSGIPythonPath /home/ubuntu/MyProject

<Directory /home/ubuntu/MyProject/MyProject>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
Run Code Online (Sandbox Code Playgroud)

所以这意味着我的网站的所有请求都不会首先转到Apache,然后允许WSGI发挥作用.因此,如果我关闭Apache,该网站将无法正常工作.

我现在已经安装了Django-Channels.根据文档(https://channels.readthedocs.io/en/latest/deploying.html)中的"部署"部分,我有:

  1. 安装Redis(在我的Django Project服务器上)
  2. 运行工作服务器
  3. 运行Daphne(接口服务器)
  4. 我暂时停止了Apache,网站拒绝连接.

以下是我的疑惑:

  • 达芙妮是否接管Apache作为主服务器?在这种情况下,我是否不再需要Apache而且可以关闭它?
  • 如果仍然需要Apache,我应该在apache2.conf文件中进行哪些设置?

django websocket django-channels

7
推荐指数
2
解决办法
7417
查看次数

标签 统计

django ×2

django-channels ×2

python ×1

redis ×1

websocket ×1