Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

ssl . के माध्यम से सेलेरी से रेडिस से कनेक्ट करने के बाद कोई प्रतिक्रिया नहीं

मैं कंटेनरों के विन्यास में परिवर्तन करके समस्या को ठीक करने में सक्षम था।
विशेष रूप से, मैंने निम्नलिखित परिवर्तन किए:

रेडिस कंटेनर में:

  • stunnel जोड़ने और रेडिस कंटेनर के लिए प्रमाणपत्र बनाने के लिए इस ट्यूटोरियल का अनुसरण किया
  • डॉकर कंटेनर में स्टनल को कॉन्फ़िगर करने के लिए इस git कोड का उपयोग किया

सेलेरी कंटेनर में:
- लॉग स्तर को बढ़ाकर डीबग . कर दिया गया है

मैंने पहली बार परीक्षण किया कि मैं अपने लोकलहोस्ट से ssl पर रेडिस डॉकटर कंटेनर से जुड़ सकता हूं। यह यहाँ वर्णित है

फिर, मैंने परीक्षण किया कि मैं एसएसएल पर सेलेरी कंटेनर से रेडिस कंटेनर से कनेक्ट कर सकता हूं। डॉकर-कंपोज़ फ़ाइल है:

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:

अन्य संबंधित फाइलें हैं:

redis docker कंटेनर पर फ़ाइलें: (इन फाइलों में सेटिंग्स का वर्णन यहां किया गया है)

  • रेडिस कंटेनर डॉकरफाइल
  • redis/conf/redis.conf
  • redis/stunnel-redis-server.conf

सेलेरी डॉकटर कंटेनर पर सेटिंग:

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 6 मल्टी-कोर CPU का लाभ उठा सकता है?

  2. स्प्रिंग डेटा रेस्ट एप्लिकेशन को रेडिस कैशिंग को लागू करने के बाद डेटाबेस से डेटा नहीं मिल रहा है

  3. StackExchange.Redis एकाधिक चैनलों की सदस्यता कैसे लें

  4. स्प्रिंग-बूट में वस्तुओं के लिए रेडिस-कैश को डिसेरिएलाइज़ करने में समस्या

  5. रेडिस के लिए उपयोग की जाने वाली अंतर्निहित डेटा संरचनाएं क्या हैं?