栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

通过ssl从celery到redis连接后无响应

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

通过ssl从celery到redis连接后无响应

我能够通过更改容器的配置来解决此问题。
具体来说,我进行了以下更改:

在redis容器中:

  • 按照本教程添加通道,并为redis容器创建证书
  • 使用此 git代码在Docker容器中配置stunnel

在Celery容器中:
-提高了日志级别以进行 调试

我首先测试了可以通过ssl从本地主机连接到redisdocker容器。
然后,我测试可以通过ssl从celery容器连接到redis容器。docker-compose文件为:

version: '3'services:  web:    restart: always    build:      context: ./web      dockerfile: Dockerfile    expose:      - "8000"    volumes:      - /home/webServer/web:/home/flask/app/web      - /home/webServer/redis/ssl:/etc/certs      - data2:/home/flask/app/web/project/img    command: /usr/local/bin/gunicorn -w 2 -t 3600 -b :8000 project:app    depends_on:      - postgres    stdin_open: true    tty: true  nginx:    restart: always    build:      context: ./nginx      dockerfile: Dockerfile    ports:      - "80:80"      - "443:443"    volumes:      - /home/webServer/web:/home/flask/app/web      - data2:/home/flask/app/web/project/img    depends_on:      - web  postgres:    restart: always    build:      context: ./postgresql      dockerfile: Dockerfile    volumes:      - data1:/var/lib/postgresql/data    expose:      - "5432"  redis:    build:      context: ./redis      dockerfile: Dockerfile    restart: always    command: sh -c "stunnel /stunnel-redis-server.conf && /usr/local/bin/redis-server /etc/redis/redis.conf"    expose:      - '6380'    ports:     - "6380:6380"    volumes:      - /home/webServer/redis/ssl:/etc/certs      - /home/webServer/redis/conf:/etc/redis  celery:    build:      context: ./web    command: watchmedo auto-restart --directory=./ --pattern=*.py --recursive -- celery worker -A project.celery  --loglevel=debug    volumes:      - /home/webServer/web:/home/flask/app/web      - /home/webServer/redis/ssl:/etc/certs      - data2:/home/flask/app/web/project/img    depends_on:      - redisvolumes:  data1:  data2:

其他相关文件是:

**redis docker容器上的文件:

  • Redis容器Dockerfile
  • redis / conf / redis.conf
  • redis / stunnel-redis-server.conf

celery docker容器上的设置:

cat web/project/flask_celery.py...key_file = '/etc/certs/localhost.key'cert_file = '/etc/certs/private.pem'ca_file = '/etc/certs/myCA.pem'...celery = Celery(app.import_name,     backend=app.config['CELERY_RESULT_BACKEND'],     broker=app.config['CELERY_BROKER_URL'],     broker_use_ssl = {         'ssl_keyfile': key_file,         'ssl_certfile': cert_file,         'ssl_ca_certs': ca_file,         'ssl_cert_reqs': ssl.CERT_REQUIRED     },     redis_backend_use_ssl = {         'ssl_keyfile': key_file,         'ssl_certfile': cert_file,         'ssl_ca_certs': ca_file,         'ssl_cert_reqs': ssl.CERT_REQUIRED     })------------------cat project/__init__.py...app.config['CELERY_BROKER_URL'] = 'rediss://webserver_redis_1:6380/0'app.config['CELERY_RESULT_BACKEND'] = 'rediss://webserver_redis_1:6380/0'


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/385955.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号