Websocket代理
Websocket协议基于http协议,允许http请求连接升级成Websocket协议。需要配置对应的头部以支持Websocket协议。
Websocket为了支持双向通信,必须保证数据分片的有序性,导致无法多路复用,不支持压缩。
开启websocket代理
location /ws { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; ...; }
复制
特定头部
- Sec-WebSocket-Version :客户端发送,表示它想使用的WebSocket 协议版本(13表示RFC 6455)。如果服务器不支持这个版本,必须回应自己支持的版本。
- Sec-WebSocket-Key :客户端发送,自动生成的一个键,作为一个对服务器的“挑战”,以验证服务器支持请求的协议版本;
- Sec-WebSocket-Accept :服务器响应,包含Sec-WebSocket-Key 的签名值,证明它支持请求的协议版本;
- Sec-WebSocket-Protocol :用于协商应用子协议:客户端发送支持的协议列表,服务器必须只回应一个协议名;
- Sec-WebSocket-Extensions:用于协商本次连接要使用的WebSocket 扩展:客户端发送支持的扩展,服务器通过返回相同的首部确认自己支持一或多个扩展。
协议升级
浏览器发送GET的http请求,携带websocket相关的头部,服务端根据头部升级http协议,响应101和对应的头部,长连接建立成功。后续客户端和服务端在此连接上进行通信。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
东方通TongHttpServer的安全特性解析
严少安
65次阅读
2025-03-17 23:15:48
Nginx实现TCP四层转发(实现代理MySQL)
IT那活儿
47次阅读
2025-03-05 11:09:26
Nginx 的基础原理篇
巴韭特锁螺丝
12次阅读
2025-03-16 19:37:40
通过nginx代理对SSL请求进行隧道化
IT那活儿
11次阅读
2025-03-11 10:12:46
nginx-ui:全新的 Nginx 在线管理平台
Linux技术宅
9次阅读
2025-03-08 07:03:18
Nginx 解决做反向代理时 静态资源图片、 js、css 访问不到
巴韭特锁螺丝
7次阅读
2025-03-14 00:02:06
nginx 服务器篇
巴韭特锁螺丝
7次阅读
2025-03-17 10:03:41
控制器- deployment01
喵呜
6次阅读
2025-03-31 13:45:40