我已经创建了聊天应用程序,在脱机状态下它可以正常工作,但当我在线部署它时,我收到了这个错误
注意:我已经安装了redis,没有问题,这是我的settings.py这是production.py这是我的另一个settings.py
CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels_redis.core.RedisChannelLayer",
"CONFIG": {
"hosts": [os.environ.get('REDIS_URL', 'redis://localhost:6379')],
},
# "symmetric_encryption_keys": [SECRET_KEY],
},
}
这是我的设置.py
CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels_redis.core.RedisChannelLayer",
"CONFIG": {
"hosts": [("127.0.0.1", 6379)],
},
},
}
注意我的网站是实时的
这是我的推荐信https://github.com/codingforentrepreneurs/chatxchannels
更新
当我运行到ubuntu时
$redis服务器
$ps辅助| grep redis服务器
我仍然得到这个错误
1条答案
按热度按时间qgelzfjb1#
这听起来像是您已有的django服务器正在处理您的请求,而不是接收请求的通道。
我认为您的问题在于如何在生产中运行服务器。
在生产中运行频道时,您有两种选择。
1) 通过通道运行所有请求(甚至那些由普通django视图处理的请求)
2) 运行普通服务器示例和通道服务器示例(在不同的本地端口上),并使用一些
path based reverse proxy
在它们前面(如nginx),将请求路由到相应的本地端口。无论您选择哪个选项,您都应该使用本指南在生产中运行频道https://channels.readthedocs.io/en/latest/deploying.html#run-协议服务器(不是python manager.py)。
如果您选择选项1),那么请记住,当您运行这个时,您需要它在旧的django服务器用来运行的相同端口配置上运行。
如果您使用选项2),您应该确保所有的流量首先到达反向代理(nginx)服务器。那你就可以跑了
Daphne
并在nginx中设置路由,以便根据路径将代理传递到相应的服务器示例。