django-channels
을 사용하여 HTTP2
& WebSocket
을 내 응용 프로그램에 추가합니다. 채널을 확장하는 방법에 대한 많은 문서를 찾을 수 없었습니다. 아래는 동일한 기계에서 다른 포트에서 실행중인 daphne
의 여러 인스턴스의로드 밸런스를 조정하는 내 nginx
구성입니다. 이것을 올바른 방법일까요? 그와 함께 로드 밸런서 뒤에 다중 인스턴스 daphne 실행 : django-channels
upstream socket {
least_conn;
server 127.0.0.1:9000;
server 127.0.0.1:9001;
server 127.0.0.1:9002;
server 127.0.0.1:9003;
}
server {
listen 80;
server_name 127.0.0.1;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/niscp/home-screen;
}
location /nicons/ {
root /home/niscp/home-screen;
}
location/{
include uwsgi_params;
uwsgi_pass unix:/home/niscp/home-screen/home-screen.sock;
}
location /ws/ {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://socket;
}
}
, 나는 다음과 같은 방법으로 개별 채널을 듣고
workers
의 개별 인스턴스를 실행하고 있습니다 : 내가 처리 할 수
uwsgi
을 가지고
python manage.py runworker --only-channels=websocket.connect
python manage.py runworker --only-channels=websocket.receive
python manage.py runworker --only-channels=websocket.disconnect
모든 HTTP 길 django
은 일반적으로 그들을 처리하는 요청 . daphne
및 workers
do는 모두 WebSocket
핸들입니다. 이 방법은 django-channels
을 확장하는 실행 가능한 방법입니까, 아니면 더 잘할 수있는 방법이 있습니까?
우리는 최소 50k 개방형 및 통신용 소켓을 위해 배치하고 있습니다. 따라서 트래픽이 많이 발생하는 채널을 청취하는 직원의 수를 늘릴 것으로 예상됩니다. 감사 :) –