0

同じサーバーに 2 つの異なるアプリケーションがあります。そのうちの 1 つはポート 80 (mydomain.com) で実行され、もう 1 つはポート 443 (sub.mydomain.com) で実行され、ワイルドカード証明書があります。

最初のアプリケーションは情報提供のみを目的としており、websockets のサポートは必要ありません。2 番目のアプリケーションには、セキュアな WebSocket サポート (wss プロトコル) が必要です。

engineyard クラウド上の nginx サーバーを使用して、Rails アプリ用に juggernaut gem (websockets 用) をセットアップしようとしましたが、問題が 1 つあります。Engineyard クラウドは、80 と 443 の 2 つの開いているポートのみを提供します。 8080)。

HAProxy を使用してみましたが、安全でない websocket のみを使用する場合はうまくいきますが、安全な websocket をサポートする必要があります。この場合、HAProxy を使用するよりも、STunnel のようなものを使用して https リクエストをトンネリングする必要がありますが、テストすると、サーバーの動作が数倍遅くなることがわかりましたが、まだセキュア ソケットを使用できませんでした。繋がり :(

多分私は何か間違ったことをしていますか?複数のアプリケーション用に nginx をセットアップする方法 (そのうちの 1 つが https 経由で動作するはずです) と、2 つのポート (80 と 443) のみを使用して Websocket を保護する方法を誰かが教えてくれるでしょう。

psまた、node-http-proxyを使用しました。この場合、さまざまなnginxアプリケーションのプロキシを設定できましたが、Webソケットを実行できません(nginxを介した「ハンドシェイク」でのみ発生し、「スイッチングプロトコル」では発生しません)

4

1 に答える 1

0

少し前に、さまざまなリバース プロキシと Websocket について調査しました。要するに、websockets は新しく、リバース プロキシのサポートは現在非常に貧弱です。

私が見て同意した推奨事項は、websocket を他のアイテムとは異なるスタックで実行する必要があるということです。これは通常、別のドメインまたはサブドメインに配置することを意味します。

リバース プロキシを動作させる複雑さに対処する必要がありますが、他のものを壊すことを心配する必要がなければ、それほど複雑ではありません。

また、serverfault またはスーパーユーザーでより良い回答が得られる可能性があることに同意します。

于 2012-03-21T20:08:14.267 に答える