redis后端在线使用django

qlvxas9a  于 2021-06-09  发布在  Redis
关注(0)|答案(1)|浏览(450)

我已经创建了聊天应用程序,在脱机状态下它可以正常工作,但当我在线部署它时,我收到了这个错误

注意:我已经安装了redis,没有问题,这是我的settings.py这是production.py这是我的另一个settings.py

  1. CHANNEL_LAYERS = {
  2. "default": {
  3. "BACKEND": "channels_redis.core.RedisChannelLayer",
  4. "CONFIG": {
  5. "hosts": [os.environ.get('REDIS_URL', 'redis://localhost:6379')],
  6. },
  7. # "symmetric_encryption_keys": [SECRET_KEY],
  8. },
  9. }

这是我的设置.py

  1. CHANNEL_LAYERS = {
  2. "default": {
  3. "BACKEND": "channels_redis.core.RedisChannelLayer",
  4. "CONFIG": {
  5. "hosts": [("127.0.0.1", 6379)],
  6. },
  7. },
  8. }

注意我的网站是实时的
这是我的推荐信https://github.com/codingforentrepreneurs/chatxchannels
更新
当我运行到ubuntu时
$redis服务器

$ps辅助| grep redis服务器

我仍然得到这个错误

qgelzfjb

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中设置路由,以便根据路径将代理传递到相应的服务器示例。

相关问题