로드 균형 조정기가있는 AWS Elastic Beanstalk에서 작동하는 django 채널 기반의 채팅 응용 프로그램을 얻으려고합니다.Django 채널과 함께 Elastic Beanstalk을 사용할 때 Websocket 오류가 발생했습니다.
기본적으로 코드를 수정하여 https://github.com/jacobian/channels-example에서 Elastic Beanstalk로 작업합니다. 나는 명령을 성공적으로 로컬로 실행할 수 있어요
python manage.py runserver
문제입니다 내가 탄성 콩 줄기와 함께 배포 할 때, 나는 채팅 응용 프로그램이 시작됩니다 다음과 같은 오류가
WebSocket connection to 'wss://mydomain.com/test/' failed: Error
during WebSocket handshake: Unexpected response code: 200
내가 시도 솔루션은 https://stackoverflow.com/a/29831723/3667089에서 제안하지만 그냥 내가 이미 TCP (80)에로드 밸런서 리스너 포트를 변경 다른 오류 코드
WebSocket connection to 'wss://mydomain.com/test/websocket' failed:
Error during WebSocket handshake: Unexpected response code: 404
을 보여 획득 SSL 리스너 포트를 SSL 443으로 변경하기위한 SSL 인증서. 그러나 여전히 동일한 오류가 발생합니다.
나는 또한 Websockets with socket.io on AWS Elastic Beanstalk을 읽었지만 Django 용 프록시 서버를 구성하는 옵션이 없다. 기본적으로 Apache를 사용하고 있다고 생각한다.
Elastic Beanstalk의 구성에서 작동하지 않는 부분은 무엇입니까?
우리가 asgi로 daphne 서버를 실행할 수 있도록 변경할 수있는 방법이 있습니까?
를 다시 시작하여 서버를 시작하고 난 일하러 가야 상사를 사용했다. 채널 문서에서는 일을 처리하기 위해 서버 ('venv/bin/daphne app.asgi : channel_layer')와 작업자 ('python manage.py runwoker')를 모두 실행해야한다고합니다. 원하는 경우 답변에 내 supervisord.conf를 게시 할 수 있지만 Elastic Beanstalk에서 어떻게 작동하는지 잘 모르겠습니다. – Brobin
@Brobin 네, 크게 감사하겠습니다. – user3667089
죄송합니다. 너무 늦었 으면 사용중인로드 밸런서를 알고 있을까요? 고전적이라면 기본적으로 웹 소켓을 지원하지 않습니다. –