Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Tidak ada tanggapan setelah terhubung dari seledri ke redis melalui ssl

Saya dapat memperbaiki masalah dengan membuat perubahan pada konfigurasi container.
Secara khusus, saya membuat perubahan berikut:

Dalam wadah redis:

  • mengikuti tutorial ini untuk menambahkan stunnel, dan membuat sertifikat untuk wadah redis
  • menggunakan kode git ini untuk mengonfigurasi stunnel dalam wadah Docker

Dalam wadah seledri:
- menaikkan level log ke debug

Saya pertama kali menguji bahwa saya dapat terhubung dari localhost saya ke wadah redis docker melalui ssl. Ini dijelaskan di sini

Kemudian, saya menguji bahwa saya dapat terhubung dari wadah seledri ke wadah redis melalui ssl. File komposisi buruh pelabuhan adalah:

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:
      - redis

volumes:
  data1:
  data2:

File terkait lainnya adalah:

file pada wadah redis docker: (setelan dalam file ini dijelaskan di sini)

  • redis container Dockerfile
  • redis/conf/redis.conf
  • redis/stunnel-redis-server.conf

setelan pada wadah buruh pelabuhan seledri:

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'



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis::CommandError:ERR Client mengirim AUTH, tetapi tidak ada kata sandi yang disetel

  2. Bagaimana cara menonaktifkan Redis RDB dan AOF?

  3. Bisakah Redis menulis ke database seperti PostgreSQL?

  4. Cara mendapatkan semua Kunci dari Redis menggunakan template redis

  5. Penyedia ASP.NET SessionState yang didukung Redis