【问题标题】:NOAUTH Authentication required. Redis settings on docker compose for djangoNOAUTH 需要身份验证。 docker compose for django 上的 Redis 设置
【发布时间】:2019-06-11 20:55:26
【问题描述】:

我不断收到错误消息:redis.exceptions.ResponseError: NOAUTH Authentication required..(我正在使用 celery 执行后台任务)。

我的 settings.py 如下所示:

CELERY_BROKER_URL = 'redis://user:my_strong_password@'+REDIS_IP+':6379/0'

我拥有的 docker-compose:

services:

  redis:
    image: redis:latest
    container_name: jh_redis
    ports:
     - '6379:6379'
    command: redis-server --appendonly yes --requirepass my_strong_password 

您可以看到我提供密码 (--requirepass) 的尝试与 settings.py 中显示的完全一样,但是,当 docker 启动并运行时,我仍然收到主题错误消息。

我尝试了不同的组合,例如:

--requirepass user:my_strong_password

但仍然没有工作。 注意:当我关闭整个命令行时 - 它可以工作(但 32 小时后 - 我收到错误消息并且它停止工作)。

docker-compose 中的适当设置应该是什么才能使其顺利运行?

【问题讨论】:

  • 您的 Redis 服务器暴露在公共网络中,并且至少由在实例上设置密码的人连接,如果不是更糟的话。至少使用密码保护您的 Redis,如果不断开它与世界的连接,以减少威胁。
  • @ItamarHaber 谢谢。你能分享一下你是如何在 docker 上保护它的吗?我还在纠结语法。

标签: django docker redis docker-compose celery


【解决方案1】:

根据 celery 文档,您的代理 url 应采用以下格式:

redis://:password@hostname:port/db_number

即,您应该从 broker_url 中删除 user

【讨论】:

  • 我没有忘记你的回答!由于某种原因,它需要几天的时间才能看到它是否不起作用(在服务器端)。我刚刚根据您的策略对其进行了修改,让我们看看它是否可以持续超过 4 天。定位并保持。再次感谢
猜你喜欢
  • 2017-07-17
  • 2020-02-22
  • 2017-02-18
  • 1970-01-01
  • 2016-03-10
  • 2018-01-22
  • 2017-07-13
  • 2016-01-19
  • 1970-01-01
相关资源
最近更新 更多