【发布时间】:2020-06-09 06:33:36
【问题描述】:
我正在尝试使用 nginx 和 daphne 部署一个使用通道和 websockets 的 django 应用程序。
当我使用 uwsgi 时,这是我的 nginx 文件:
upstream django {
server unix:/run/uwsgi/devAppReporting.sock;
}
server {
listen 8090;
server_name foo.bar.com;
charset utf-8;
location /static {
alias /var/dev-app-reporting/static;
}
location / {
uwsgi_pass django;
include /var/dev-app-reporting/uwsgi_params;
uwsgi_read_timeout 3600;
client_max_body_size 50m;
}
}
现在我把它改成了这样:
upstream django {
server unix:/run/daphne/devAppReporting.sock;
}
server {
listen 8090;
server_name foo.bar.com;
charset utf-8;
location /static {
alias /var/dev-app-reporting/static;
}
location / {
proxy_pass http://0.0.0.0:8090;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
这样开始达芙妮:
daphne -u /run/daphne/devAppReporting.sock app.dse.asgi:application
我收到 502 bad gateway 错误,并在日志中显示:
2020/02/24 22:17:26 [alert] 29169#29169: 768 worker_connections are not enough
2020/02/24 22:17:26 [error] 29169#29169: *131545 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 127.0.0.1, server: dse-portfolio-dev-assessments.md.virtualclarity.com, request: "GET / HTTP/1.1", upstream: "http://0.0.0.0:8090/", host: "xx.xx.xx.xx"
关于我应该在我的配置文件中包含什么以使其工作的任何想法?
【问题讨论】:
-
您可能需要代理传递其他 websocket 握手标头。请参阅
Client handshake requestdeveloper.mozilla.org/en-US/docs/Web/API/WebSockets_API/…
标签: django nginx websocket django-channels daphne