6

Ubuntu 15.04でApacheを使用して、URLからポート3000を効果的に削除し、パスを次のように変更しようとしていますhttp://example.com/{app}/socket.io...

ProxyPass と ProxyPassReverse を使用して、URL からポートを効果的に削除し、それに応じてサーバーとクライアント側を更新してパスを変更しました。

仮想ホストの変更:

ProxyPass /path/ http://example.com:3000/path/
ProxyPassReverse /path/ http://example.com:3000/path/

私が行ったサーバー側の変更は次のとおりです。

var io = require('socket.io')(http, {path: '/path/socket.io' });
app.get('/path/', function(req, res){

私が行ったクライアントの変更は次のとおりです。

var socket = io({path: '/path/'});

コンソール ログを開いて、Chrome のGET使用中に大量のリクエストが表示されるまで、すべてがスムーズに実行されているように見えました。これは間違いなく私の帯域幅を殺します。どうにかしてソケットを正しくリッスンできなかったため、大量のGETリクエストが発生したと思います。

私が間違っている可能性があることについて、誰かが何らかのガイダンスを提供できますか?

4

1 に答える 1

1

Apache が websocket 接続をプロキシしていないため、socket.io が長いポーリングにフォールバックしているため、多数のリクエストが表示されています。これを有効にする必要があります。

mod_proxy_wstunnel 

それから加えて

ProxyPass "/path/socker.io"  "ws://localhost:3000/"
于 2016-03-17T16:50:51.043 に答える