nginx 首先确认版本必须是1.3
以上
由于后期项目修改 现在将ws地址改为 wss://school.zhuzhida.vip/ws
//JS中文网 – 前端进阶资源分享 https://www.javascriptc.com/ 趣聊CSS系列
map指令的作用:
该作用主要是根据客户端请求中$http_upgrade 的值,来构造改变$connection_upgrade的值,即根据变量$http_upgrade的值创建新的变量$connection_upgrade,
创建的规则就是{}里面的东西。其中的规则没有做匹配,因此使用默认的,即 $connection_upgrade 的值会一直是 upgrade。然后如果 $http_upgrade为空字符串的话,
那值会是 close。
//JS中文网 – 前端进阶资源分享 https://www.javascriptc.com/ 趣聊CSS系列
schoolsocket.zhuzhida.vip.conf
\#必须添加的
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
#监听websocket
upstream websocket {
#ip_hash;
#转发到服务器上相应的ws端口
server localhost:3344;
#server localhost:8011;
}
server {
listen 80;
server_name schoolsocket.zhuzhida.vip;
location / {
#转发到http://websocket
proxy_pass http://websocket;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#升级http1.1到 websocket协议
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
//JS中文网 – 前端进阶资源分享 https://www.javascriptc.com/ 趣聊CSS系列
测试一下
1.确保服务未被转发前ws端口是否正常
wscat -c localhost:3344
//JS中文网 – 前端进阶资源分享 https://www.javascriptc.com/ 趣聊CSS系列
服务器返回权限不足是因为我ws服务首次会话有token校验,此处返回权限不足断开连接为正常现象
2.外网测试nginx转发
Js中文网 – 前端进阶资源教程 www.javascriptC.com,typescript 中文文档
一个帮助开发者成长的社区,你想要的,在这里都能找到
wscat -c schoolsocket.zhuzhida.vip
//JS中文网 – 前端进阶资源分享 https://www.javascriptc.com/ 趣聊CSS系列
作者:年轻的资本
链接:https://juejin.im/post/6844903839749898247
看完两件小事
如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:
- 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
- 关注公众号 「画漫画的程序员」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程
本文著作权归作者所有,如若转载,请注明出处
转载请注明:文章转载自「 Js中文网 · 前端进阶资源教程 」https://www.javascriptc.com