nginx 代理 websocket
2024-09-22 15:59:32
nginx 代理 websocket
nginx 首先确认版本必须是1.3以上
map指令的作用:
该作用主要是根据客户端请求中$http_upgrade 的值,来构造改变$connection_upgrade的值,即根据变量$http_upgrade的值创建新的变量$connection_upgrade,
创建的规则就是{}里面的东西。其中的规则没有做匹配,因此使用默认的,即 $connection_upgrade 的值会一直是 upgrade。然后如果 $http_upgrade为空字符串的话,
那值会是 close。
由于后期项目修改 现在将ws地址改为 wss://school.zhuzhida.vip/ws
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;
}
}
复制代码
测试一下
1.确保服务未被转发前ws端口是否正常
wscat -c localhost:3344
复制代码
服务器返回权限不足是因为我ws服务首次会话有token校验,此处返回权限不足断开连接为正常现象
2.外网测试nginx转发
wscat -c schoolsocket.zhuzhida.vip
复制代码
最新文章
- C语言关于利用sscanf实现字符串相加减
- java动态绑定的一点注意
- sqlserver 数据库中时间函数的建立
- Oracle在dos命令下导出导入
- 10socket编程
- HTML5开发规范
- Ehcache(2.9.x) - API Developer Guide, Write-Through and Write-Behind Caches
- Aizu 2305 Beautiful Currency DP
- Android常见开发思路
- JQuery中如何click中传递参数
- grunt插件[font-spider] : 转码,压缩字体 @font-face
- [iOS常见问题] 关于使用QQ做第三方登录的问题!
- 源码编译安装 PHP5.5.0,解决curl_exec访问HTTPS返回502错误的问题(修改PATH路径)
- IT增值服务,客户案例(一)--山东青岛在职人士,2年.Net经验,转Java开发半年
- 201521123089 《Java程序设计》第3周学习总结
- c# 复制dataset中table结构跟数据
- tian
- Matplotlib学习
- redis服务部署脚本
- pyhton之os.path
热门文章
- mysql instr()函数
- SpringBoot 跨域 Access-Control-Allow-Origin
- 面试之leetcode20堆栈-字符串括号匹配,队列实现栈
- 【转帖】编译-O 选项对性能提升作用
- 简单的python爬虫教程:批量爬取图片
- Django框架深入了解_04(DRF之url控制、解析器、响应器、版本控制、分页)
- LOJ2882 JOISC2014 两个人的星座 计算几何
- Unity的学习笔记(XLua的初学用法并在lua中使用unity周期函数)
- aspnetcore 容器化部属到阿里云全过程记录
- 扩展JS