WebSocket套接字400錯誤

WebSocket套接字400錯誤`


本片文章針對JsPython建立通信時,所出現的問題

# js向python3後端傳輸消息,雙方會話無法建立
# 環境:兩臺阿里雲服務器

排查思路

1.由於服務器上部署NginxPython3後端使用Tornado框架。Tornado框架支持WebSocket套接字,所以可先將後端因素拋出。

2.實際測試環境,客戶端訪問網頁,js向服務器端發起建立會話。js拋出400錯誤,可以理解爲跨域訪問的問題。

3.因爲中間使用Nginx做代理和負載均衡,所以我們暫時可以將問題集中在中間層Nginx上。

# 修改前
server {
    listen	     80;
    server_name ***.com;
    location / {
        proxy_pass	http://***.com;
        proxy_set_header Host $host;
        proxy_set_header X-Read-IP $remote_addr;
        proxy_set_header X-Forwarded-For $Proxy_add_x_forwarded_for;
    }
}
# 修改後
server {
    listen	     80;
    server_name ***.com;
    location / {
        proxy_pass	http://***.com;
        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-Read-IP $remote_addr;
        proxy_set_header X-Forwarded-For $Proxy_add_x_forwarded_for;
    }
}

重啓Nginx或者重讀配置文件,然後js400跨域訪問問題就解決了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章