3

私のアプリは以下を使用します:

  • ジャンゴチャンネル

  • nginx

  • daphne (Django Channels HTTP/WebSocket サーバー)

フロントエンドの html ファイルには、次のような JavaScript の行がいくつかあります。

socket = new WebSocket("ws://" + window.location.host);
socket.onmessage = function(e) {
...

アプリのこの websocket 部分は機能しません。ページを読み込むと、Chrome Web Inspector は次のように言います。

Request URL:ws://myapphostname/
**502 Bad Gateway**

サイトの残りの部分は正常にロードされます。

daphne を次のように開始します: 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バックエンド部分で発生しているのかはわかりません。

問題をさらにデバッグするために、どの方向に進むことができるのだろうか。

4

0 に答える 0