nginx教程:Nginx配置websocket的wss訪問
阿新 • • 發佈:2021-02-09
技術標籤:nginxnginxlinuxubuntu伺服器負載均衡
前景回顧
最近自己的伺服器需要上上線一個websocket服務,本地測試什麼的都是正常的,知道上線的時候,發現報瞭如下錯誤
從圖中可以發現,如果內嵌websocket的站點是https加密的,則需要使用wss協議,而不是ws協議。毫無疑問我們就需要使用 wss:\ 安全協議了,那不簡單,直接把ws:\ 改為 wss:\ 不就行了?
說幹就幹。
好吧,還是太天真
上面的錯誤很明顯 SSL 協議錯誤,說明就是證書問題了。測試的時候我們一直拿的是 IP地址 + 埠號 這種方式連線 WebSocket 的,所以一直不存在問題,但是生成環境我們肯定不能再用 IP地址 + 埠號這種形式了。看來簡單的改協議頭解決不了問題。那麼怎麼才能解決問題呢?
Nginx 配置域名支援 WSS
#在nginx內新增該段內容
location /websocket {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}