nginx代理WebSocket配置
代理WebSocket的示例配置
# /etc/nginx/conf.d/proxy-http.conf
server {listen 8080;server_name api.mydomain.com;location / {proxy_pass http://backend;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_connect_timeout 5;proxy_read_timeout 90s;proxy_send_timeout 10s;}
}
参数说明
- proxy_http_version
设置代理到upstream的http协议版本,必须设置;默认可能会采用http/1.0,会导致协议升级切换失败。
- Proxy header Upgrade & Connection
使nginx将协议切换到WebSocket,必须明确定义、或判断客户端是否需要升级协议并向upstream传递该值。
http {# 匹配变量http_upgrade的值,根据匹配情况为变量connection_upgrade赋值map $http_upgrade $connection_upgrade {default upgrade;'' close;}server {...location /chat/ {proxy_pass http://backend;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection $connection_upgrade;}}
- proxy_read_timeout
定义从代理服务器读取响应的超时时间;保持长连接最终依靠的是心跳机制,此值根据客户端心跳间隔合理设置,一般比心跳间隔大一些时间。
nginx代理WebSocket配置相关推荐
- Nginx代理webSocket时60s自动断开, 怎么保持长连接
利用nginx代理websocket的时候,发现客户端和服务器握手成功后,如果在60s时间内没有数据交互,连接就会自动断开,如下图: 为了保持长连接,可以采取来两种方式. 1.nginx.conf 文 ...
- Nginx代理WebSocket方法
微信公众号:运维开发故事,作者:姜总 大家好,我是小姜. 前一篇文章讲了一下什么是WebSocket协议,这里在回顾一下,并且聊一聊如何用nginx来代理WebSocket. WebSocket是HT ...
- 通过 Nginx 代理转发配置实现跨域(API 代理转发)
通过 Nginx 代理转发配置实现跨域(API 代理转发) 阅读 2285 收藏 119 2017-04-08 原文链接:www.thinktxt.com 1元视频体验视频通话10000分钟cloud ...
- Nginx代理sftp配置
最近有几个项目组的同事都在咨询nginx代理sftp的问题,那今天就写下此博文以供大家参考.献丑了! 0. 环境 主机名 IP 角色 nginx 192.168.10.182 代理服务器 sftp_s ...
- nginx反向代理配置 多个_实例分享:Nginx学习之反向代理WebSocket配置实例
写在开始 去年,做过一款竞赛打分的APP.具体需求,同组教师之间可以相互通信,及时通知同组人员,其他组员做了那些操作(当然,这只是针对特定操作). 实现方案 采用目前比较成熟的WebSocket技术, ...
- Nginx代理websocket
nginx.conf配置 server {listen 8090; server_name localhost;add_header Access-Control-Allow-Origin *;add ...
- Nginx代理webSocket经常中断的解决方案, 如何保持长连接
为什么80%的码农都做不了架构师?>>> 背景 这天气够热的,要处理的事情也够多的.... 想看解决的,直接 ctrl+f搜索关键字'配置点'## 开始前交代(想看原因的看这个 ...
- nginx转发websocket配置
背景:启动socket后,一般可以用ip进行直连,不过这样会引发很多问题 解决方案:采用 域名+nginx转发 nginx配置如下: upstream swoole_http_server {serv ...
- Nginx 代理 WebSocket
2019独角兽企业重金招聘Python工程师标准>>> WebSocket连接异常:Error during WebSocket handshake: Unexpected resp ...
最新文章
- 我的学习之路_第二十三章_HTML
- c2665 “initgraph”: 2 个重载中没有一个可以转换所有参数类型_Python 命令行之旅:深入 click 之参数篇...
- MyBatis中如何通过继承SqlSessionDaoSupport来编写DAO(二)
- Spring原理之代理与动态代理模式总结(四)
- 手写 Object.create
- CSS之cacl()函数
- 如何录制回放测试用例并且添加检查点?
- 【原】IOS合并lib(.a)库的终极可用方法(可用于解决duplicate symbol静态库冲突)
- Spark系列-SparkSQL实战
- LeetCode 翻转字符串里的单词
- PDF文件在线合并如何操作
- 东莞芯钰科运动控制卡实战记录-硬件篇
- 关于74HC573使用
- 基于 Kubernetes 部署 Zookeeper,太有意思了!
- 服务器关闭微软小娜,言而无信: 微软悄悄将小娜的禁用网络搜索选项废弃
- GUVC-T10GD-L185 臭氧灯监控172nm和185nm紫外线灯监测高可靠性光电二极管杀菌灯监控
- 常用多媒体文件格式压缩标准解析学习---图像表示与声音基本
- 贴片Y1电容和贴片Y2电容简介!
- 达内c++培训整体课程体系安排
- 维谛技术(Vertiv):场景驱动的边缘计算
热门文章
- Python实现中文翻译到英文——附源代码
- 交换平台(一)第一章:数据交换平台的一些基本概念
- 年会开头主持词,中文
- [Toddler's Bottle]-[flag]
- Mac OSX下的tree命令
- html5 Game开发系列文章之 三 搭建基本游戏框架(代码封装)
- MyBatis动态sql语句使用
- 在Linux上打开端口
- oracle重启监听12541,oracle数据 报 “ora-12541:TNS:无监听程序”错误
- WPF DevExpress grid 设置自定义筛选栏的条件为包含关系