代理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配置相关推荐

  1. Nginx代理webSocket时60s自动断开, 怎么保持长连接

    利用nginx代理websocket的时候,发现客户端和服务器握手成功后,如果在60s时间内没有数据交互,连接就会自动断开,如下图: 为了保持长连接,可以采取来两种方式. 1.nginx.conf 文 ...

  2. Nginx代理WebSocket方法

    微信公众号:运维开发故事,作者:姜总 大家好,我是小姜. 前一篇文章讲了一下什么是WebSocket协议,这里在回顾一下,并且聊一聊如何用nginx来代理WebSocket. WebSocket是HT ...

  3. 通过 Nginx 代理转发配置实现跨域(API 代理转发)

    通过 Nginx 代理转发配置实现跨域(API 代理转发) 阅读 2285 收藏 119 2017-04-08 原文链接:www.thinktxt.com 1元视频体验视频通话10000分钟cloud ...

  4. Nginx代理sftp配置

    最近有几个项目组的同事都在咨询nginx代理sftp的问题,那今天就写下此博文以供大家参考.献丑了! 0. 环境 主机名 IP 角色 nginx 192.168.10.182 代理服务器 sftp_s ...

  5. nginx反向代理配置 多个_实例分享:Nginx学习之反向代理WebSocket配置实例

    写在开始 去年,做过一款竞赛打分的APP.具体需求,同组教师之间可以相互通信,及时通知同组人员,其他组员做了那些操作(当然,这只是针对特定操作). 实现方案 采用目前比较成熟的WebSocket技术, ...

  6. Nginx代理websocket

    nginx.conf配置 server {listen 8090; server_name localhost;add_header Access-Control-Allow-Origin *;add ...

  7. Nginx代理webSocket经常中断的解决方案, 如何保持长连接

    为什么80%的码农都做不了架构师?>>>    背景 这天气够热的,要处理的事情也够多的.... 想看解决的,直接 ctrl+f搜索关键字'配置点'## 开始前交代(想看原因的看这个 ...

  8. nginx转发websocket配置

    背景:启动socket后,一般可以用ip进行直连,不过这样会引发很多问题 解决方案:采用 域名+nginx转发 nginx配置如下: upstream swoole_http_server {serv ...

  9. Nginx 代理 WebSocket

    2019独角兽企业重金招聘Python工程师标准>>> WebSocket连接异常:Error during WebSocket handshake: Unexpected resp ...

最新文章

  1. 我的学习之路_第二十三章_HTML
  2. c2665 “initgraph”: 2 个重载中没有一个可以转换所有参数类型_Python 命令行之旅:深入 click 之参数篇...
  3. MyBatis中如何通过继承SqlSessionDaoSupport来编写DAO(二)
  4. Spring原理之代理与动态代理模式总结(四)
  5. 手写 Object.create
  6. CSS之cacl()函数
  7. 如何录制回放测试用例并且添加检查点?
  8. 【原】IOS合并lib(.a)库的终极可用方法(可用于解决duplicate symbol静态库冲突)
  9. Spark系列-SparkSQL实战
  10. LeetCode 翻转字符串里的单词
  11. PDF文件在线合并如何操作
  12. 东莞芯钰科运动控制卡实战记录-硬件篇
  13. 关于74HC573使用
  14. 基于 Kubernetes 部署 Zookeeper,太有意思了!
  15. 服务器关闭微软小娜,言而无信: 微软悄悄将小娜的禁用网络搜索选项废弃
  16. GUVC-T10GD-L185 臭氧灯监控172nm和185nm紫外线灯监测高可靠性光电二极管杀菌灯监控
  17. 常用多媒体文件格式压缩标准解析学习---图像表示与声音基本
  18. 贴片Y1电容和贴片Y2电容简介!
  19. 达内c++培训整体课程体系安排
  20. 维谛技术(Vertiv):场景驱动的边缘计算

热门文章

  1. Python实现中文翻译到英文——附源代码
  2. 交换平台(一)第一章:数据交换平台的一些基本概念
  3. 年会开头主持词,中文
  4. [Toddler's Bottle]-[flag]
  5. Mac OSX下的tree命令
  6. html5 Game开发系列文章之 三 搭建基本游戏框架(代码封装)
  7. MyBatis动态sql语句使用
  8. 在Linux上打开端口
  9. oracle重启监听12541,oracle数据 报 “ora-12541:TNS:无监听程序”错误
  10. WPF DevExpress grid 设置自定义筛选栏的条件为包含关系