2017-04-03 12 views
3

残りのサーバ(Java Sparkを使用)とWebソケット(Netty-socketIOを使用)の両方を使用できるようにnginxルーティングを設定しようとしています。残りのサーバとwebsocketをelasticbeanstalkで接続すると、Javaは接続できません

これは本当にうまく動作しますが、aws elasticbeanstalkで動作するようにはなりません。

私はデフォルトでhttp://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-se-platform.html

からデフォルトでポート5000でリッスンするJavaスパークを、持っている、Elastic Beanstalkでは、ポート5000

上のアプリケーションに要求を転送するためにnginxのプロキシを設定し、それは動作します。

私はポート9000でWebsocketをリッスンします。私はELBプロトコルをTCPに変更しました。 AWSのドキュメントから

そして、まだ:

は、Elastic Beanstalkでのデフォルトのnginxの設定を拡張し、アプリケーションのソース・バンドルに/ .ebextensions/nginxの/ conf.dという名前のフォルダに.confの設定ファイルを追加します。 Elastic Beanstalkのnginx設定には、.confファイルがこのフォルダに自動的に含まれます。私は多くの成功なしで試してみました

server { 
    location/{ 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection "upgrade"; 
    } 
} 

SocketIOクライアントの接続文字列http://beanstalk-address-here.us-east-1.elasticbeanstalk.com:9000

ネットワーク]タブでは、要求が失敗するまでの時間(保留)です。

+0

は、ターゲットグループの粘着性を有効にしましたか?それなしではWebソケットは動作しません – Deepak

答えて

0

なぜあなたはまだ

nginxのルーティング通常、非標準のポートを介して、あなたのアプリにアクセスする場合は、nginxのを使用して行います構成パスに基づいて、1つのポート(通常は80/443)とのすべての接続を受け入れ、それがいかなる特定のIP /ポート

にリダイレクトしますnginxの設定ファイル、基本的にこれらの

を持つべきです10

nginxのはリスンポート

server { 
     listen  80 default_server; 
     listen  [::]:80 default_server; 
     server_name localhost; 

    } 

リダイレクトリスト

server{ 
.... 

location/{ 
     proxy_pass http://<your-app-ip>:<your-app-port>; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection 'upgrade'; 
     proxy_set_header Host $host; 
     proxy_cache_bypass $http_upgrade; 
} 

} 

今nginxのは、アプリのURLがリダイレクトされたURLは、http://beanstalk-address-here.us-east-1.elasticbeanstalk.com(nginxのは聞きますですhttp://beanstalk-address-here.us-east-1.elasticbeanstalk.com:9000

ある

再起動ポート8へ0とあなたのアプリケーションポートにリダイレクト)

関連する問題