我的应用程序使用:
django 频道
nginx
daphne(Django 频道 HTTP/WebSocket 服务器)
在我的前端 html 文件中,有一些这样的 javascript 行:
socket = new WebSocket("ws://" + window.location.host);
socket.onmessage = function(e) {
...
应用程序的这个 websockets 部分不起作用。当我加载页面时,我的 Chrome Web Inspector 会说:
Request URL:ws://myapphostname/
**502 Bad Gateway**
该网站的其余部分加载正常。
我开始达芙妮: daphne -b 0.0.0.0 -p 8001 ...
和 nginx 配置是这样的:
server {
listen 80;
server_name myapphostname;
location / {
proxy_pass http://0.0.0.0:8001;
proxy_http_version 1.1;
proxy_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
我的主机上 myapphostname 的主机文件当然已设置并指向应用程序的 IP(通过 vagrant 在 vm 中运行)。
目前我不确定我的应用程序的错误配置是否更多不是 nginx 站点或更多 websockets 后端部分。
我想知道我可以朝哪个方向移动以进一步调试问题。