1.Websocket 简介

WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。

2.Nginx 简介

Nginx是一个反向代理服务器,所有的来自浏览器的请求必须经过Nginx。

通常的正向代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中,此时客户机是主动方。

而在反向代理中,web服务器是主动方,客户机必须经过代理才能访问。

3.Uwsgi 简介

所谓后端APP,即一套用来处理客户端请求的逻辑部分的程序;

所谓WSGI,即python用来web开发的协议标准;

所谓uWSGI,即一个即可以充当web服务器,又可以作为中间件的程序;

所谓uwsgi,是uWSGI基于WSGI实现的自用的一个协议;

4.配置Nginx代理Websocket连接

一 Nginx监听80端口,并转发到443端口。即默认使用https传输。

二 在443端口,开启ssl,设置证书。

 如果监听到指定websocket连接,设置websocket协议升级,具体配置如下:

proxy_connect_timeout 2s
...
proxy_pass https://clusters
...
proxy_set_header X-Real_IP $remote_addr_IP
proxy_set_header Host $host
proxy_set_header X_Forward_For $X_Forward_For
proxy_http_version 1.1
proxy_set_header Upgrade $http_upgrade
proxy_set_header Connection 'upgrade'

三 监听另一端口,配置同上,并将消息转发给uwsgi端口,交付给uwsgi处理。

5.前后端发送和处理Websocket消息

前端使用javascript接口新建websocket对象,并监听websocket.onmessage事件,进行消息接受和处理。并通过websocket.send()接口进行消息发送。

后端uswgi框架使用类似的websocket对象进行消息收发和处理。

使用Nginx代理和转发Websocket连接相关推荐

  1. 使用NGINX代理通过外网连接内网服务器的mysql和redis等

    使用NGINX代理通过外网连接内网服务器的mysql和redis等 前言 使用工具 安装OpenResty 前言 服务器A.B,现在A和B互通,外网可以访问A,但是访问不到B,数据库等中间件安装在B服 ...

  2. Nginx代理-端口转发

    目录 1.使用nginx+docker端口转发 2.未使用docker容器的端口转发 使用nginx+docker实现端口转发 背景: 一台服务器,使用docker搭建了多个服务容器: 服务1:0.0 ...

  3. Nginx 代理 TCP协议 MySQL连接

    使用nginx代理mysql连接有个好处就是,如果做了容灾处理的话, 可以瞬间平滑切换到可用服务上. ip关系如下: 需求:现在想要通过182.156的nginx 代理访问182.155的mysql( ...

  4. 使用 Nginx 代理 Socket.io/WebSocket 及 负载均衡配置

    2019独角兽企业重金招聘Python工程师标准>>> 转自:http://naux.me/using-nginx-with-socketio/ 0,介绍 Socket.io 一套是 ...

  5. 使用nginx代理通过外网连接内网oracle以及mysql数据库

    一.前言 1.首先要部署nginx,在编译时要加上 --with-stream 使其支持stream模块,具体安装部署这里就不说了. 2.准备一台有暴露公网ip的主机将nginx部署到上面,其他部署m ...

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

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

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

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

  8. nginx转发websocket

    nginx转发websocket 1.Nginx 支持websocket的配置 server {listen 80;server_name 域名;location / {proxy_pass http ...

  9. nginx开启支持websocket连接

    引用至:http://www.javajob.work/article/24 2020-1-9: nginx的启动:/usr/local/nginx/sbin/nginx -c /usr/local/ ...

最新文章

  1. [转帖]什么是光纤的波长?看看有哪些是你不知道的!
  2. Hibernate【XXXX.hbm.xml】总结
  3. 【Windows部署】首次安装的谷歌Chrome浏览器出现【无法打开此页面】问题处理(详细图文步骤)
  4. iOS - UIScrollView
  5. mongoDB中的聚合操作
  6. (8)Zynq AXI_ACP接口介绍
  7. DOTNET零碎总结---VB.NET修改数据存在多个txtbox时,SQL语句的操作
  8. spring配置数据源错误记录
  9. 上传文件应注意的异常:FileUpLoad控件.
  10. pxe启动虚拟机过程记录
  11. GStreamer应用开发文档的ogg播放器
  12. mysql 之 增删改查
  13. UID/DID/SID总结
  14. 在线IDE- Gitpod介绍
  15. 使用ant design的table控件最后一列固定(fixed)遇到的问题
  16. 微信电脑版公测更新,终于可以刷朋友圈啦!!(附公测地址)
  17. 计算机网络-网络类别[#1]
  18. 软工实践第八次作业——第五组
  19. 打造你的私人聊天机器人
  20. Java基础之02 动态代理模式172 173 类加载器原理分析

热门文章

  1. PHP json_encode 只支持utf8编码
  2. 【数据结构】用栈解决表达式求值问题
  3. 步步为营VS 2008 + .NET 3.5系列文章索引
  4. Installshield x:实现序列号检验,获取用户信息并写入指定_ini文件1 - 子夜 MySpace聚友博客...
  5. 创建yum存储库;文件目录下存RPM包,不挂载镜像,不使用外网yum源;
  6. Date日期类型的绑定
  7. hoj 13788 Dwarves
  8. 错误:C:\Windows\System32\ssleay32.dll: Can't load IA 32-bit .dll on a AMD 64-bit
  9. 一步步教你轻松学K-means聚类算法
  10. 多线程之线程池-各个参数的含义- 阿里,美团,京东面试题目