nginx 如何代理websocket
前言
下面是配置nginx websocket 的代码。
# HTTPS server
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream websocket {
server localhost:30000; #本地websocket反向代理地址
}
server {
listen 443 ssl;
server_name www.51kanyisheng.com;
ssl_certificate D://ssl//wwwnginx//value.crt;
ssl_certificate_key D://ssl//wwwnginx//cert.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
location / {
#root html;
#index index.html index.htm;
proxy_pass https://www.xxxx:10000;
}
# 监听app
location /websocket {
proxy_pass http://websocket;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
#proxy_set_header Host $host;
}
}
正文
为什么这么配置呢?
看一下如何建立websocket 配置:
首先浏览器会和我们沟通发布:
GET /webfin/websocket/ HTTP/1.1
Host: localhost
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: xqBt3ImNzJbYqRINxEFlkg==
Origin: http://localhost:8080
Sec-WebSocket-Version: 13
然后我们会一个:
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: K7DJLdLooIwIG/MOpvWFB3y3FE8=
这其实是http协议,在websocket 连接建立之前我们需要去沟通切换协议。
$http_upgrade 客户端请求中$http_upgrade 的值,来构造改变$connection_upgrade的值,即根据变量$http_upgrade的值创建新的变量$connection_upgrade
map 的详解是:
https://blog.51cto.com/tchuairen/2175525?source=dra
在websocket 代理过程中,过一段时间会出现断开的现象,这是因为nginx 代理默认了一段时间没有响应就会断开。
我们需要设置一个心跳包,合理的调整nginx 的断开时间。
nginx 如何代理websocket的更多相关文章
- Nginx反向代理websocket配置实例
最近有一个需求,就是需要使用 nginx 反向代理 websocket,经过查找一番资料,目前已经测试通过,本文只做一个记录 复制代码 代码如下: 注: 看官方文档说 Nginx 在 1.3 以后的版 ...
- NGINX: 反向代理 websocket
参考: [ Using multiple nodes ] [ Nginx 官网 WebSocket proxying ] 关于 websocket 的介绍可以看阮大大的这篇 [ WebSocket 教 ...
- nginx之代理websocket
nginx代理websocket:NGINX通过允许一个在客户端和后端服务器之间建立的隧道来支持WebSocket.为了NGINX发送来至于客户端Upgrade请求到后端服务器,Upgrade和Con ...
- Nginx反向代理WebSocket(WSS)
1. WebSocket协议 WebSocket 协议提供了一种创建支持客户端和服务端实时双向通信Web应用程序的方法.作为HTML5规范的一部分,WebSockets简化了开发Web实时通信程序的难 ...
- 配置 Nginx 反向代理 WebSocket
用Nginx给网站做反向代理和负载均衡是广泛使用的一种Web服务器部署技术.不仅能够保证后端服务器的隐蔽性,还可以提高网站部署灵活性. 今天我们来讲一下,如何用Nginx给WebSocket服务器实现 ...
- Nginx反向代理websocket配置实例(官网)
https://www.nginx.com/blog/websocket-nginx/ Blog Tech Rick Nelson of NGINX, Inc. May 16, 2014 NG ...
- 配置Nginx反向代理WebSocket,以代理noVNC为例
什么是Nginx Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮 ...
- nginx 反向代理 (websocket)后报 - 400 bad request
nginx的反向代理. nginx.conf中的配置如下: location / { proxy_http_version 1.1; pro ...
- Nginx反向代理WebSocket
http { upstream websocket { server 192.168.1.1:8010; } server { listen 8020; location / { proxy_pass ...
- Nginx实战之反向代理WebSocket的配置实例
http://www.jb51.net/article/112183.htm 最近在工作中遇到一个需求,需要使用 nginx 反向代理websocket,经过查找一番资料,目前已经测试通过,所以这篇文 ...
随机推荐
- pandas plot函数:数据可视化的快捷通道
一般来说,我们先用pandas分析数据,然后用matplotlib之类的可视化库来显示分析结果.而pandas库中有一个强大的工具--plot函数,可以使数据可视化变得简单而高效. 1. plot 函 ...
- vue-helper 点击跳转插件 在 methods里面互相调用函数,会产生两个函数definitions ,然后就回弹出框让你选择,解决方案是加配置
vue-helper 点击跳转插件 在 methods里面互相调用函数,会产生两个函数definitions ,然后就回弹出框让你选择 原因:换了台电脑,又从新配置下vscode "edit ...
- open cv java 可以 对图片进行分析,得到数据。考试答题卡 2B铅笔涂黑嘎达 识别
open cv java 可以 对图片进行分析,得到数据.考试答题卡 2B铅笔涂黑嘎达 识别
- arch安装xfce4的时候,出现无法设置开机启动的问题
sudo systemctl enable lightdm Failed to enable unit: File /etc/systemd/system/display-manager.serv ...
- 安装debian后,发现进入不了root
回想了一下,自己安装的时候,没有设置root密码! 解决方法: sudo passwd root 随后设置密码: 再次su 就可以进入root目录了!
- python删除指定文件夹下文件和文件夹的方法
前记 python删除指定文件夹下的文件,是一个常用的功能.我找了不少地方,一直没有找到合适的模版,那只好自己倒腾一个比较实用的模版了. 基本模块 这里面会用到几个模块,一个是目录下所有文件的 ...
- AOSP12内置三方apk
一.准备工作 1.可正常编译的Android12的源码 2.三方apk:我这里选择的是一个ChatGPT的apk(下载地址:https://aigcfun.com/app-download),选择这个 ...
- Linux 运维工程师面试真题-3-Linux 磁盘及软件管理操作
Linux 运维工程师面试真题-3-Linux 磁盘及软件管理操作 1.如何添加一块新的 50G 硬盘到 linux 服务器系统作为单独的分区,并正在使用?需要哪些 操作步骤? 2.有个金士顿 U 盘 ...
- 元宇宙解决方案——云端GPU在元宇宙中的作用
GPU算力可以说是我们现在信息化时代的基础设施,在某种程度上说我们已经进入了算力时代,手机.电脑.车载等算力已经渗透到各行各业了. 当然算力对元宇宙也很重要,尤其是在可视化方面,元宇宙需要很逼真的渲染 ...
- demo介绍:uni-app统合--各类大转盘demo介绍
这里给大家介绍下我做的一个uni-app的demo:抽奖系统 废话不多说直接上效果图: 线上案例: 首页: 大转盘抽奖页面: 轮播机抽奖页面: 九宫格抽奖页面: 翻牌抽奖页面: 奖品列表页面: 抽奖的 ...