0

Rails アプリケーションでem-websocket gemを使用しています。WebSocket サーバーは初期化子で実行されます。これは次のようになります。

#config/initializers/web_socket.rb
EM.next_tick do
  EM::WebSocket.run(host: '0.0.0.0', port: 8080) do |ws|
    ws.onopen do |request|
      ...
    end

    ws.onclose do
      ...
    end
  end
end

Railsサーバーを起動すると、WebSocketサーバーが実行されます。開発環境では完璧に動作しますが、テスト サーバーでは動作しません。そこで Nginx と Passenger を使用します。

Passenger と Nginx で WebSockets をセットアップする方法を知っている人はいますか?

更新: 私は開発環境でシンを使用しています。本番環境では Nginx と Passenger を使用していますが、これらのツールの設定は通常です。ログにエラー メッセージはありません。ブラウザ コンソールに次のエラーがあります。

Failed: Error in connection establishment: net::ERR_CONNECTION_TIMED_OUT 

Nginx の設定:

worker_processes  1;

events {
    worker_connections  1024;
}
http {
    passenger_root /usr/local/rvm/gems/ruby-2.2.2/gems/passenger-5.0.7;
    passenger_ruby /usr/local/rvm/gems/ruby-2.2.2/wrappers/ruby;

    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {
        listen       80;
        server_name  example.com;
        passenger_enabled on;
        rails_env production;
        root /var/www/domains/example.com/www/deployments/current/public;
    }
}

通常のUbuntuサーバーを使用しています。

4

0 に答える 0