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配合gotty的websocket连接配置

    由于gotty我作了url加密, 所以url在nginx里的前缀要能替换才行. 配置关键就在于有没有/ #user nobody; worker_processes 1; #error_log log ...

  2. 在vue中如何使用WebSocket 以及nginx代理如何配置WebSocket

    WebSocket WebSocket是一种网络传输协议,可在单个TCP连接上进行全双工通信.浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输. 浏览器支持情况 现 ...

  3. Nginx 服务器配置支持SignalR (WebSocket)

    今天SignalR部署在测试环境服务器前端出现无法连接,前端报错如下: failed: Error during WebSocket handshake: Unexpected response co ...

  4. 第十四章 nginx代理配置

    一.nginx代理 1.常见模式 1.常见模式:1)正向代理2)反向代理​2.区别1)区别在于形式上服务的"对象"不一样2)正向代理代理的对象是客户端,为客户端服务3)反向代理代理 ...

  5. Nginx代理常用参数

    目录 一:Nginx代理常用参数 1.添加发往后端服务器的请求头信息 二:参数案例 1.lb01配置文件 2.web01 web02 web服务器 3.测试 4.重启 5.DNS域名解析 6.网址测试 ...

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

    背景 这天气够热的,要处理的事情也够多的.... 1 2 想看解决的,直接 ctrl+f搜索关键字‘配置点’ 开始前交代(想看原因的看这个,个人观点,不代表正确) 解说:今天用nginx反代通讯项目, ...

  7. websocket使用nginx代理后连接频繁打开和关闭

    前几天开发了一个功能,使用websocket向前台发送消息,与前端联调时一切正常,但是发布到环境出现如下报错: 发现404,无法找到连接,突然想到环境上是走nginx代理的,应该是nginx没有配置代 ...

  8. nginx反向代理时保持长连接

    ·[场景描述] HTTP1.1之后,HTTP协议支持持久连接,也就是长连接,优点在于在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟. 如果我们使用了nginx去作为 ...

  9. nginx 代理 websocket

    nginx 代理 websocket nginx 首先确认版本必须是1.3以上 map指令的作用: 该作用主要是根据客户端请求中$http_upgrade 的值,来构造改变$connection_up ...

随机推荐

  1. HDU 4511 小明系列故事——女友的考验 ( Trie图 && DP )

    题意 :  给出编号从1 ~ n 的 n 个平面直角坐标系上的点,求从给出的第一个点出发到达最后一个点的最短路径,其中有两种限制,其一就是只能从编号小的点到达编号大的点,再者不能走接下来给出的 m 个 ...

  2. HPU personal training

    K - Two Contests 原题链接:https://agc040.contest.atcoder.jp/tasks/agc040_b?lang=en 题目大意: 给一个区间集合,将这些区间分为 ...

  3. UITabbarController & UITabbar 学习

    最后更新2016-04-06 一. UITabbarController 给UITabbarController 设置viewControllers熟悉时候,超过五个就会有一个 moreNavigat ...

  4. [CSP-S模拟测试]:超级树(DP)

    题目传送门(内部题5) 输入格式 一行两个整数$k$.$mod$,意义见上. 输出格式 一行一个整数,代表答案. 样例 样例输入1: 2 100 样例输出1: 样例输入2: 3 1000 样例输出2: ...

  5. IO 输入输出流

    1) 数据流: 一组有序,有起点和终点的字节的数据序列.包括输入流和输出流.

  6. PHP CGI

    cgi是通用网关接口,是连接web服务器和应用程序的接口. web服务器负责接收http请求,但是http请求从request到response的过程需要有应用程序的逻辑处理,web服务器一般是使用C ...

  7. 北风设计模式课程---里氏替换原则(Liskov Substitution Principle)

    北风设计模式课程---里氏替换原则(Liskov Substitution Principle) 一.总结 一句话总结: 当衍生类能够完全替代它们的基类时:(Liskov Substitution P ...

  8. nginx 和 php

    sudo apt-get install nginx sudo groupadd www sudo useradd -g www www /etc/nginx/nginx.conf service n ...

  9. VUE Right-hand side of ‘instanceof’ is not an object 解决方案

    这里要注意一下, props之前没注意写成了   props: {     wrd: '',       sname:'zs'   },   这样是不能被解析成object的,所以一定要写的更具体一点 ...

  10. How to derive mean and variance of a Gaussian?

    PRML exercise 1.8: To derive mean: change of variable z = x - u, use symmetry To derive variance: di ...