1

Django Web サービスを開発しています。WebSocket (ws://) を使用して PUSH を利用しようとしています。これまで、nGINX での ws のサポートはありません。そのため、Tornado Server を使用して WebSocket をホストしています。多くの (ほぼすべての) チュートリアルには、Socket.io を使用したソリューションがあります。純粋な WebSocket ではない Socket.io coz を使用したくありません (私によると)。Socket.io (Node.js) ではなく ws を使用したいだけです。

HTTP リクエストを処理するには、私のフロントエンド サーバーは nGINX にする必要があります。ws:// リクエストは Tornado サーバー (サポートされている場合は他のサーバー) に渡す必要があります。

4

2 に答える 2

1

NGINX構成スニペットは次のとおりです

map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}

upstream websocket {
    server 192.168.100.10:8010;
}

server {
    listen 8020;
    location / {
        proxy_pass http://websocket;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }
}

詳細については、ブログhttps://www.nginx.com/blog/websocket-nginx/を参照してください。

于 2015-12-15T04:17:10.047 に答える
0

執筆時点では、Nginx は websockets をサポートしていませんでした。現在は 1.3.13 (2013 年 2 月) でサポートされています。

問題は、nginx がデータを終了してダウンストリーム サービスにプロキシするため、Websockets をサポートしていないことです。トラフィックを希望どおりにルーティングするには、nginx サーバーの前に HAProxy を配置する必要があります。

良い例はここにあります - HAProxy + WebSocket Disconnection - バックエンド サービスとして nodejs について話している間、すべては本質的に同じです。

于 2012-09-28T15:48:29.700 に答える