https://www.worldflying.cn/article-id-13.html

https://tieba.baidu.com/p/5213484390?red_tag=0009614627

使用nginx解决一台服务器中ws协议与wss协议共存问题

2017-07-09 13:29:06

众所周知,nginx是一个高性能的web静态服务器,同时具有很强大的反向代理以及fastcgi功能,因此现在在web端最常用的配置方式就是ngixn处理静态元素,然后使用apache+php模块,tomcat,php-fpm等工具处理动态代码。

通常apache+php模块,tomcat直接使用反向代理的方式,而php-fpm则使用fastcgi的通信方式。但是在web通信中,还有一种使用非常流行的通信方式,那就是websocket通信,他是基于web的长链接技术,由于这个技术的出现,保证了客户端可以被动的接收来自服务器的消息。

考虑到数据安全问题,现在越来越多的网站开始使用https协议,一种将数据通过ssl加密后传输的一种技术。websocket协议也有其对应的ssl加密技术,其协议标识为wss(普通的为ws)。但是由于ws与https这两个协议配置都需要服务器的支持。由于我以前一直在使用nginx,对于在nginx下配置ssl非常熟练,但是这次的案子需要我配置wss协议。一下子我人都傻了。

下面来说说我是这么解决给wss协议配置ssl的吧。

其实说起来也没什么,而且还有点卑鄙,由于我一开始想直接在websocket服务器软件上配置ssl,但是通过实验得知,websocket服务器配置了wss,就不具备ws功能了,而目前我的另一个案子又需要使用不加密的ws通信方式,所以直接在websocket下配置的方式没有走通,后来我想到以前有通过nginx配置https协议,反向代理apache的http协议,因此我想,是否可以通过配置nginx,反向代理wss协议到ws上去呢?按照这个思路我查询了相关资料,最后居然被我给找到方法来了。

server {listen 15301;listen [::]:15301;server_name www.worldflying.cn;ssl on;ssl_certificate /var/www/worldflying/www.worldflying.cn.pem;ssl_certificate_key /var/www/worldflying/www.worldflying.cn.key;location / {proxy_pass http://127.0.0.1:15300;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}
}

上面的配置就是我之前的那个案子的配置,意思是wss协议的端口是15301,ws协议的端口是15300,当有客户通过正确的域名与15301这个端口来连接wss协议时,就会在服务器内部反向代理到15300这个普通的ws端口去,由于在服务器内部反向代理,自然也就不存在安全问题。这样我就成功的实现了websocket服务器中,ws协议与wss协议共存的问题了。

优秀解决方案推荐:商城解决方案

上一篇:互联网+新风口,还不快来开发app

下一篇:wordpress直接操作数据库的方法

联系我们

使用nginx解决一台服务器中ws协议与wss协议共存问题 2017-07-09 13:29:06相关推荐

  1. [nginx代理配置][nginx proxy_pass][nginx从一台服务器代理到另外一台服务器,浏览器地址不改变]

    1.两台服务器 (1). 172.16.0.90 apache服务器 浏览器访问如下: 服务器里查看如下: 2). 172.16.0.58 nginx服务器 下有download目录 浏览器效果如下: ...

  2. nginx websocket wss 连接失败 failed_浅谈WebSocket协议、WS协议和WSS协议原理及关系

    现如今,一些游戏,网站,APP,支付行业的网络经常会收到DDOS和CC,因此这个事情也变得不足为奇了.但在防护方案中有多种不同的方案.如,今天有几个同事在针对高防CDN问题讨论的时,谈到WebSock ...

  3. php reactphp wss_浅谈WebSocket协议、WS协议和WSS协议原理及关系

    websocket在实时通信领域运用的比较多,比如社交聊天.弹幕.多玩家游戏.协同编辑.股票基金实时报价.体育实况更新.视频会议/聊天.基于位置的应用.在线教育.智能家居等需要高实时的场景. 具体到w ...

  4. 浅谈WebSocket协议、WS协议和WSS协议原理及关系

    现如今,一些游戏,网站,APP,支付行业的网络经常会收到DDOS和CC,因此这个事情也变得不足为奇了.但在防护方案中有多种不同的方案.如,今天有几个同事在针对高防CDN问题讨论的时,谈到WebSock ...

  5. 关于IIS和Serv-U在同一台服务器中端口冲突问题

    Serv-u与IIS冲突的原因是与IIS抢占80和443端口.Serv-u 7增加了通过Web方式管理服务器端的功能,默认情况下管理端口是80,如果用https的话则是443.很多人在安装的时候没太注 ...

  6. 如何将lvm卷移动到另一台服务器中

    在某些情况下,将卷组从一个系统移动到另一个系统可能是我们最需要的.下面看一下如何将一个包含多个磁盘的卷组从一台服务器移动到另一台服务器,而不会丢失任何文件. 环境 两台Centos8 虚拟机 第一台名 ...

  7. 服务器中有两个R文件夹,一台服务器中配置多个git sshkey

    需求背景:GitHub上有两个项目,需要拉取到同一台服务器,并且都需要通过ssh的方式拉取 假设两个项目分别叫: proj1 和 proj2 一.分别生成 ssh key # 先生成 proj1 的 ...

  8. Vdbench:解决多台服务器联机运行时,出现的常见问题记录2

    一.Vdbench多台服务器联机时报错,如: slave hd2-0 prematurely terminated .Look at file hd2-0.stdout.html for more i ...

  9. 把一个服务器的数据库导入到另一台服务器中

    例如用户名mmc,密码mmc,数据库实例 MMC 1.服务器1 上执行exp mmc/mmc@localhost:1521/MMC file=导出的文件名.dmp 2.服务器2 上执行sftp ora ...

最新文章

  1. python文件读取方法read(size)的含义是_在Python中可使用read([size])来读取文件中的数据,如果参数size省略,则读取文件中的()。...
  2. linux 有空格的文件夹,Linux之删除带有空格的文件
  3. 中国智慧城市前瞻及开发运营可行性分析报告2022-2027年版
  4. 软件测试第四周作业WordCount优化
  5. 运维是否有前(钱)途?
  6. 【图像去噪】基于matlab GUI中值+均值+维纳+小波滤波图像去噪【含Matlab源码 753期】
  7. ubuntu下安装matlab及配置vot-toolkit
  8. wps xml转换表格_如何转换Excel格式?学会这几招?1键即可完成转换
  9. vue 基于网易云API的短信验证码登录(axios封装)
  10. 汽车工程大专业细分学科类别小探
  11. pip cmd下载速度慢解决方案
  12. 对比不同的JSON字符串或者对象转的字符串
  13. 显示当前系统时间和日期
  14. 程序员内功:八大排序算法
  15. 数据结构 找树根和孩子(树)
  16. Latex——属于符号
  17. 赵小楼《天道》《遥远的救世主》深度解析(44)怎么理解肖亚文听到芮小丹说爱上丁元英时所说的“地狱”?
  18. 【MIS你了解多少】你现在遇到的问题都是宝贵的财富
  19. python 导入的nan怎么解决_如何在Python中使用Lmfit解决NaN值错误
  20. AD20/Altium designer——如何生成Gerber打板文件

热门文章

  1. listagg 函数导致中文乱码
  2. ConvNeXt网络介绍,搭建以及训练
  3. android判断推送权限,iApp检查与获取推送权限
  4. win10玩cf不能全屏_CF如何全屏
  5. 圣诞新年祝福语 给另一半和情侣
  6. exec函数族介绍以及execl和execlp函数具体使用
  7. Springboot2 D1-基础篇、利用boot完成SSM整合(内含Mp的一些知识)
  8. 解决Parallels Desktop Windows11虚拟机上传网速变慢方法
  9. React路由重定向Redirect
  10. r语言写内曼最优分配_R中最优化函数optim