2

この質問は重複しているように感じますが、私がチェックしたすべての同様のスレッドからまだ答えを見つけることができませんでした.

/node/ リクエストを NodeJS/Socket.IO サーバーにプロキシする vhost セットアップがあります。

ProxyRequests On
ProxyPass /node http://192.168.2.151:1337/
ProxyPassReverse /node http://192.168.2.151:1337/

このセットアップは、リクエストを期待して、Apache からすべてを正常に処理します: http://domain.com/node/ NodeJS に関しては、すべて正常に動作します。

この行を取得できません:

<script src="/node/socket.io/socket.io.js"></script>

socket.io.js をロードするために、NodeJS サーバーが何を言わなければならないかを常に吐き出します。

セットアップ:

index.html は Apache によって提供されます。http://domain.com/index.html index.html は、(上で書いたように) socket.io.js をロードするためのスクリプト タグを含む単純な HTML です。http://domain.com/index.htmlスクリプトをリクエストすると、src が読み込まれますが、コンテンツは socket.io.js ではなく NodeJS サーバーの応答です。

NodeJSサーバーが実行されているディレクトリに「npm install socket.io」があります。

とにかく、NodeJSでindex.htmlを提供しようとしました-socket.io.jsコンテンツはまだNodeJS応答です。

誰かがこの問題を抱えていましたか?または、私を答えにリンクできますか?:)

乾杯!

4

1 に答える 1

0

この質問と serverfault のすべての回答を見てください: WebSocket をプロキシするように Apache2 を構成していますか? .

問題は、mod_proxyWebSockets をサポートせず、単に HTTP リクエストにすることです。別のポートを使用してプロキシを回避したり、Nginx に切り替えたり、haproxy を試したり、他のさまざまな Apache モジュールの代替手段を使用したりできます。たとえば、mod_proxy_wstunnel基本的mod_proxyに WebSockets をサポートしています。すべてのソリューションの詳細については、上記の serverfault リンクを参照してください。

于 2014-01-09T03:10:22.540 に答える