[REDIS] 레디 스 + 도커 + 장고 - 오류 111 연결 거부
REDIS레디 스 + 도커 + 장고 - 오류 111 연결 거부
나는 도커 작성을 사용하여 내 장고 프로젝트에 대한 셀러리의 브로커로 레디 스를 사용하는 것을 시도하고있다. 나는 정확히 내가 잘못을 무슨 짓을했는지 알아낼 수는 없지만 콘솔 로그 메시지 (나는 고정 표시기의 PS를 수행 할 때, 나는 용기가 실행 볼 수 있습니다, 참과) 레디 스 연결을 실행하고 받아들이는 것을 말해 있다는 사실에도 불구하고 나는 여전히 연결에 대한 오류가 거부되고 얻을. 난 한
docker exec -it <redis_container_name> redis-cli
ping
그리고 톱 응답 PONG는 것을.
여기 내 settings.py의 셀러리 설정은 다음과 같습니다
BROKER_URL = 'redis://localhost:6379/0'
BROKER_TRANSPORT = 'redis'
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_ENABLE_UTC = True
CELERY_TIMEZONE = "UTC"
여기 내 고정 표시기 - compose.yml의 레디 스 컨테이너 설정은 다음과 같습니다
redis:
image: redis
ports:
- "6379:6379"
내 웹 컨테이너도를 레디 스 컨테이너를 연결하는 기억했다. 나는 잘 서버를 시작할 수 있습니다,하지만 난 사이트에 아무것도를 업로드하려고 할 때 연결이 오류를 거부 얻을. 무엇 정확히 잘못이에요?
편집 : 나는 내 settings.py으로 localhost 대신 VM의 IP를 사용해야하는 것처럼 보이지 않도록, 8000 : 내가 로컬 호스트에서 브라우저 및 액세스 내 사이트로 이동할 수 있습니다 앞으로 있도록 포트에 VBoxManage를 사용하는 기억했다.
편집 2 : 나는 고정 표시기 기계 VM 또는 레디 스 컨테이너의 IP 주소의 IP 주소로 설정에서 localhost를 교체하는 경우는, 다음 무슨 일 난을 업로드 할 때 정말 빨리 내 웹 사이트에 잘못된 성공 메시지를 얻을 수 있다는 것입니다 파일,하지만 아무것도 실제로 업로드되지됩니다. 기저 업로드 기능은 insertIntoDatabase (), 지연을 사용한다.
해결법
-
==============================
1.장고는 레디 스 용기에 연결되는 별도의 용기에 실행하고 있습니까? 그렇다면, 당신은 장고는 레디 스 컨테이너에 연결하는 데 사용해야하는 IP와 포트 일부 환경 변수를 가져야한다. 를 사용하도록 설정 BROKER_URL는 IP를 레디 스 및 포트 ENV는 바르 당신이 사업에 있어야합니다. RESULT_BACKEND 저두 요.
장고는 레디 스 용기에 연결되는 별도의 용기에 실행하고 있습니까? 그렇다면, 당신은 장고는 레디 스 컨테이너에 연결하는 데 사용해야하는 IP와 포트 일부 환경 변수를 가져야한다. 를 사용하도록 설정 BROKER_URL는 IP를 레디 스 및 포트 ENV는 바르 당신이 사업에 있어야합니다. RESULT_BACKEND 저두 요.
ENV의 바르에 대한 참조 문서는 여기에 있습니다 : 도커 작성 문서
여기에 우리가 자동으로 추가 ENV는 OfferUp에서 우리의 프로젝트 중 하나에 바르 사용하는 방법에 대한 몇 가지 예제 코드는 다음과 같습니다
BROKER_TRANSPORT = "redis" _REDIS_LOCATION = 'redis://{}:{}'.format(os.environ.get("REDIS_PORT_6379_TCP_ADDR"), os.environ.get("REDIS_PORT_6379_TCP_PORT")) BROKER_URL = _REDIS_LOCATION + "/0" CELERY_RESULT_BACKEND = _REDIS_LOCATION + "/1"
-
==============================
2.난 그냥 그것으로 인해이 settings.py에 CELERY_BROKER_URL로 변경 BROKER_URL에 필요했던이 튜토리얼에 V4에 버전 3.1에서 셀러리를 업데이트하고 따라 비슷한 문제가 있었다
난 그냥 그것으로 인해이 settings.py에 CELERY_BROKER_URL로 변경 BROKER_URL에 필요했던이 튜토리얼에 V4에 버전 3.1에서 셀러리를 업데이트하고 따라 비슷한 문제가 있었다
settings.py 부분
CELERY_BROKER_URL = 'redis://cache:6379/0' CELERY_RESULT_BACKEND = 'redis://cache:6379/0'
부두 노동자 - compose.yml 부분
version: '2' services: web: container_name: django-container ******* other options ******* depends_on: - cache - db cache: container_name: redis-container restart: always image: redis:latest
from https://stackoverflow.com/questions/32615370/redisdockerdjango-error-111-connection-refused by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 비동기 AOF fsync를 너무 오래 (디스크가 사용 중이?)하고있다. 전체에 fsync를 기다리지 않고 AOF 버퍼를 작성,이 레디 스 느려질 수 있습니다 (0) | 2020.01.25 |
---|---|
[REDIS] blpop 잠시 후 처리 큐 정지 (0) | 2020.01.25 |
[REDIS] springboot2.0에서 @cacheable 사용하는 경우 어떻게 각 레디 스 캐시에 대해 다른 TTL을 구성 할 수 (0) | 2020.01.24 |
[REDIS] 스프링 데이터 레디 스 마스터 슬레이브 구성 (0) | 2020.01.24 |
[REDIS] 레디 스와 Node.js를 : 동기 또는 비동기? (0) | 2020.01.24 |