在AWS上託管的Laravel/Vue.JS應用程序位於經典負載平衡器(Elastic Beanstalk)後面,並通過Nginx內部代理到socket.io服務器。 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;
}
眼下長輪詢模式工作正常,但它未能啓動升級:
WebSocket連接到「WSS://例子?的.com/socket.io/EIO = 3 &運輸= WebSocket的& SID = HmDFtq-aj1WgfGUyAAAJ」失敗:錯誤的WebSocket握手期間:意外的響應代碼:400
P.S Chrome的Frames
標籤我只能看到這個奇怪的消息:(Opcode -1)
已順利拿到socket.io上的AWS彈性魔豆的環境中工作人?我只是浪費了兩週的時間來處理這個問題,非常感謝任何建議或想法。謝謝!
更新。我打開一個詳細的日誌記錄,這裏是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'套接字服務器日誌上看到了什麼? –