我正在使用django-channels
添加HTTP2
& WebSocket
支持我的應用程序。關於如何擴展頻道,我找不到很多文檔。以下是我的nginx
配置,負載平衡運行在同一臺計算機上但運行不同端口的多個實例daphne
。這是做到這一點的正確方法嗎?在負載均衡器後面運行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
單個實例來聽以下方式單個通道:
python manage.py runworker --only-channels=websocket.connect
python manage.py runworker --only-channels=websocket.receive
python manage.py runworker --only-channels=websocket.disconnect
我有uwsgi
來處理所有HTTP請求的方式django
正常處理它們。所有daphne
和workers
做的是處理WebSocket
請求。 這是一個可行的方法來衡量django-channels
,或有什麼我可以做得更好?
我們正在部署至少50k的開放和通信套接字。所以,我想我們會增加傾聽更多流量頻道的工作人員的數量。謝謝 :) –