私たちは、html5WebSocketを利用する必要があるRubyonRailsアプリに取り組んでいます。現在、いわば2つの別個の「サーバー」があります。nginx+passengerで実行されるメインアプリと、Pratik NaikのCrampフレームワーク( Thinで実行されている)を使用してWebSocket接続を処理する別個のサーバーです。
理想的には、デプロイの時期になると、Railsアプリがnginx +passengerで実行され、WebSocketサーバーがnginxの背後にプロキシされるため、WebSocketサーバーを別のポートで実行する必要はありません。
問題は、このセットアップでは、nginxがThinへの接続を早すぎて閉じているように見えることです。シンサーバーへの接続は正常に確立され、200応答コードですぐに閉じられます。私たちの推測では、nginxは、クライアントがWebSocketトラフィックの長時間実行接続を確立しようとしていることを認識していません。
確かに、私はnginx configに精通しているわけではないので、WebSocketサーバーのリバースプロキシとして機能するようにnginxを構成することも可能ですか?または、nginxが新しいWebSocketハンドシェイクのサポートを提供するのを待つ必要がありますか?アプリサーバーとWebSocketサーバーの両方がポート80でリッスンしていることが要件であるとすると、今のところnginxを使用せずにThinを別のサーバーで実行する必要があるのでしょうか。
アドバイスや提案を事前に感謝します。:)
-ジョン