我正在使用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的开放和通信套接字。所以,我想我们会增加倾听更多流量频道的工作人员的数量。谢谢 :) –