2 回答

TA貢獻1784條經驗 獲得超7個贊
我能夠通過結合這兩個答案來使其發揮作用。
nginx.conf 現在看起來像
http {
server_tokens off;
server {
listen 80;
location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://web:8080/;
}
location /websocket {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://web:8080/websocket;
}
}
}
然后將 JavaScript 文件ws://更改為wss://
<script>
let socket = new WebSocket("wss://myexamplesite.com/websocket")
console.log("Attempting Websocket Connection")
socket.onopen = () => {
console.log("Successfully Connected");
socket.send("Hi From the Client!")
}
socket.onclose = (event) => {
console.log("Socket Closed Connection: ", event)
}
socket.onmessage = (msg) => {
console.log(msg);
}
socket.onerror = (error) => {
console.log("Socket Error: ", error)
}
</script>

TA貢獻1831條經驗 獲得超4個贊
首先檢查 AWS ALB 配置方面的所有內容是否正確,并且請求是否已到達 Nginx 服務器,您可以在日志中檢查該服務器。還可以嘗試通過 Nginx 訪問您的 websocket URL。您需要在 Nginx 中進行額外的配置來支持您所在位置下的 websockets,如下所述:
proxy_set_header?Upgrade?$http_upgrade; proxy_set_header?Connection?"Upgrade";
我也遇到過同樣的問題,并且使用這個配置開始變得輕而易舉。
注意:Websockets 肯定可以與 AWS ALB 配合使用,所以不要懷疑這一部分。
- 2 回答
- 0 關注
- 416 瀏覽
添加回答
舉報