原理說明
其實(shí) wss 認(rèn)證和 https 認(rèn)證沒什么區(qū)別,只是需要單獨(dú)添加兩個(gè)格外的 header ,支持一下 ws 協(xié)議升級(jí)而已,所以直接copy 一個(gè) https 模版進(jìn)行簡單的變更即可文章來源地址http://www.zghlxwxcb.cn/news/detail-753339.html
鏈接簡歷過程
ws 建立連接過程
- 前端向后段發(fā)送標(biāo)準(zhǔn)的http連接請(qǐng)求,并攜帶升級(jí)協(xié)議相關(guān)參數(shù),同時(shí)設(shè)置一個(gè)安全密鑰
- Connection: Upgrade:表示要升級(jí)協(xié)議
- Upgrade: websocket:表示要升級(jí)到websocket協(xié)議。
- Sec-WebSocket-Version: 13:表示websocket的版本。如果服務(wù)端不支持該版本,需要返回一個(gè)Sec-WebSocket-Versionheader,里面包含服務(wù)端支持的版本號(hào)。
- Sec-WebSocket-Key:與后面服務(wù)端響應(yīng)首部的Sec-WebSocket-Accept是配套的,提供基本的防護(hù),比如惡意的連接,或者無意的連接。
- 后段回復(fù)協(xié)議同意升級(jí),并回復(fù)相關(guān)信息內(nèi)容
- Connection:Upgrade
- Upgrade: websocket
- Sec-WebSocket-Accept: byzN0AQ13jhfONC1bP8dTKb4PTU=
注意事項(xiàng)
- xxxxxx.net 換成自己的域名
- pem和key不要過期,注意路徑要正確
nginx 配置 wss 協(xié)議的配置文件如下
#以下屬性中,以ssl開頭的屬性表示與證書配置有關(guān)。
server {
#配置HTTPS的默認(rèn)訪問端口為443。
#如果未在此處配置HTTPS的默認(rèn)訪問端口,可能會(huì)造成Nginx無法啟動(dòng)。
#如果您使用Nginx 1.15.0及以上版本,請(qǐng)使用listen 443 ssl代替listen 443和ssl on。
listen 443 ssl;
#填寫證書綁定的域名
server_name xxxxxx.net;
#填寫證書文件名稱
ssl_certificate /opt/pki/xxxxxx.net.pem;
#填寫證書私鑰文件名稱
ssl_certificate_key /opt/pki/xxxxxx.net.key;
ssl_session_timeout 5m;
#表示使用的加密套件的類型
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#表示使用的TLS協(xié)議的類型,您需要自行評(píng)估是否配置TLSv1.1協(xié)議。
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
access_log logs/xxxxxx.net.access.log main;
location /ws {
proxy_pass http://localhost:31697;
proxy_read_timeout 500;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
# ws 協(xié)議專用頭
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
文章來源:http://www.zghlxwxcb.cn/news/detail-753339.html
到了這里,關(guān)于nginx 配置 wss 協(xié)議的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!