websocket 失败 'Invalid frame header'
websocket failed with 'Invalid frame header'
我创建了一个简单的聊天应用程序并将其部署到 AWS EC2。
我用 Vue.js 构建了前端并使用了 javascript 的 WebSocket。
在后端,我使用了 Django、channels 和 Postgres。
它在本地工作正常,但 WebSocket 在服务器上一段时间后断开连接。
我使用 Nginx 进行部署。
我还为 Nginx WebSocket 配置将 proxy_read_timeout 设置为 600s。
this.chatSocket = new WebSocket(GlobalConstants.WEBSOCKET_URL + '/ws/chat/' + id + '/')
this.chatSocket.onmessage = (m) => {
let data = JSON.parse(m.data)
let messageData = {}
messageData[data.type] = data.message
let message = {
author: data.sender == this.currentUser ? 'me' : data.sender,
type: data.type,
data: messageData
}
this.receiveMessage(message)
if (data.sender != this.currentUser) {
this.addParticipant(data.sender)
}
}
这是nginx配置。
server {
listen 80;
server_name x.x.x.x;
location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass "http://127.0.0.1:8000";
}
location /ws/ {
proxy_pass http://127.0.0.1:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_read_timeout 600s;
}
}
连接建立后,工作10或20秒。
然后出现这个错误。
请帮助我。
这是一个 nginx 配置问题。
我用的是 nginx 1.18.0,proxy_read_timeout 没用。
我创建了一个简单的聊天应用程序并将其部署到 AWS EC2。
我用 Vue.js 构建了前端并使用了 javascript 的 WebSocket。
在后端,我使用了 Django、channels 和 Postgres。
它在本地工作正常,但 WebSocket 在服务器上一段时间后断开连接。
我使用 Nginx 进行部署。
我还为 Nginx WebSocket 配置将 proxy_read_timeout 设置为 600s。
this.chatSocket = new WebSocket(GlobalConstants.WEBSOCKET_URL + '/ws/chat/' + id + '/')
this.chatSocket.onmessage = (m) => {
let data = JSON.parse(m.data)
let messageData = {}
messageData[data.type] = data.message
let message = {
author: data.sender == this.currentUser ? 'me' : data.sender,
type: data.type,
data: messageData
}
this.receiveMessage(message)
if (data.sender != this.currentUser) {
this.addParticipant(data.sender)
}
}
这是nginx配置。
server {
listen 80;
server_name x.x.x.x;
location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass "http://127.0.0.1:8000";
}
location /ws/ {
proxy_pass http://127.0.0.1:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_read_timeout 600s;
}
}
连接建立后,工作10或20秒。
然后出现这个错误。
请帮助我。
这是一个 nginx 配置问题。 我用的是 nginx 1.18.0,proxy_read_timeout 没用。