Classic Load Balancer(Elastic Beanstalk)の背後にAWSでホストされ、Nginx経由でsocket.ioサーバーにプロキシされるLaravel/Vue.JSアプリケーションがあります。 SSLはNginxで終了します。AWS EB:WebSocketハンドシェイク時のエラー:予期しない応答コード:400
これは、nginxの設定ファイルである:
location /socket.io {
proxy_pass http://127.0.0.1:6001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
今のロングポーリングモードが正常に動作しますが、それはアップグレードを開始するのに失敗します。WSS」へ
のWebSocket接続://例?.COM/socket.io/EIO = 3 &輸送= &のWebSocket SID = HmDFtq-aj1WgfGUyAAAJ」失敗:のWebSocketハンドシェイク中のエラー:予期しない応答コード:400
P.S Chromeの私は、この奇妙なメッセージを見ることができますFrames
タブ:(Opcode -1)
誰もが正常にsocket.io AWS Elastic Beanstalkで環境に取り組んで持っていますか?私はちょうどこの問題に対処する2週間を無駄にした、非常に任意の提案やアイデアに感謝します。ありがとう!
更新。私は、冗長ロギングをオンにし、ここでnginxの内の変数です:
$host example.com
$proxy_add_x_forwarded_for 134.xxx.xxx.xxx
$http_upgrade -
$remote_addr 172.31.10.208
$remote_user -
$server_name _
$upstream_addr 127.0.0.1:6001
$request GET /socket.io/?EIO=3&transport=polling&t=Lw26sYn&sid=6L5iHma-GJOeE3JQAAAX HTTP/1.1
$upstream_response_time 24.658 msec
$request_time 24.658
はたぶん誰かが私はどんなアドバイスをいただければ幸いです間違ったこれらの値のいくつかを見つけるでしょう。
'proxy_set_header Host $ host;'を削除し、 –
@TarunLalwaniをテストしても残念ですが動作しません。 –
'6001'ソケットサーバのログには何が表示されますか? –