实现方案

采用目前比较成熟的WebSocket技术,WebSocket协议为创建客户端和服务器端需要实时双向通讯的webapp提供了一个选择。其为HTML5的一部分,WebSocket相较于原来开发这类app的方法来说,其能使开发更加地简单。大部分现在的浏览器都支持WebSocket,比如Firefox,IE,Chrome,Safari,Opera,并且越来越多的服务器框架现在也同样支持WebSocket。
WebSocket集群
在实际的生产环境中,要求多个WebSocket服务器必须具有高性能和高可用,那么WebSocket协议就需要一个负载均衡层,NGINX从1.3开始支持WebSocket,其可以作为一个反向代理和为WebSocket程序做负载均衡。
Nginx配置
注:看官方文档说 Nginx 在 1.3 以后的版本才支持 websocket 反向代理,所以要想使用支持 websocket 的功能,必须升级到 1.3 以后的版本
NGINX通过允许一个在客户端和后端服务器之间建立的隧道来支持WebSocket。为了NGINX发送来至于客户端Upgrade请求到后端服务器,Upgrade和Connection头部必须被设置明确。
代码实例:
upstream wsbackend {
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
server {
listen 80;
server_name ws.52itstyle.com;
location / {
proxy_pass http://wsbackend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
前端配置:
$(function(){
socket.init();
});
//Nginx反向代理实现websocket
var basePath = "ws://ws.52itstyle.com//acts_competition/";
socket = {
webSocket : "",
init : function() {
if ('WebSocket' in window) {
webSocket = new WebSocket(basePath+'webSocketServer');
}
else if ('MozWebSocket' in window) {
webSocket = new MozWebSocket(basePath+"webSocketServer");
}
else {
webSocket = new SockJS(basePath+"sockjs/webSocketServer");
}
webSocket.onerror = function(event) {
//alert("websockt连接发生错误,请刷新页面重试!")
};
webSocket.onopen = function(event) {
};
webSocket.onmessage = function(event) {
};
},
sendData : function(data) {
webSocket.send(data);
},
}
最后,重启下Nginx即可。
反向代理服务器在支持WebSocket时面临的挑战
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# nginx
# websocket
# 代理
# 反向代理
# nginx反向代理配置
# 详解Nginx如何处理WebSocket连接
# Nginx支持websocket的配置详解
# nginx ingress代理websocket流量的配置方法
# nginx反向代理webSocket配置详解
# 详解nginx websocket配置
# 详解Nginx反向代理WebSocket响应403的解决办法
# 关于Spring Boot WebSocket整合以及nginx配置详解
# 简介Nginx服务器的Websockets配置方法
# WebSocket 配置与Nginx 的完美结合(过程详解)
# 客户端
# 代理服务器
# 后端
# 自己的
# 是一个
# 负载均衡
# 是在
# 多个
# 而不
# 这类
# 要想
# 不像
# 作为一个
# 时就
# 升级到
# 这篇文章
# 能使
# 谢谢大家
# 重启
# 高性能
相关文章:
建站之星24小时客服电话如何获取?
建站主机服务器选购指南:轻量应用与VPS配置解析
如何用PHP快速搭建高效网站?分步指南
实例解析Array和String方法
如何基于云服务器快速搭建网站及云盘系统?
大型企业网站制作流程,做网站需要注册公司吗?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
建站上传速度慢?如何优化加速网站加载效率?
建站主机是否等同于虚拟主机?
建站之星如何实现五合一智能建站与营销推广?
建站主机如何选?性能与价格怎样平衡?
建站之星×万网:智能建站系统+自助建站平台一键生成
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
如何在VPS电脑上快速搭建网站?
C++中引用和指针有什么区别?(代码说明)
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
如何通过山东自助建站平台快速注册域名?
招贴海报怎么做,什么是海报招贴?
如何选择建站程序?包含哪些必备功能与类型?
如何快速搭建高效服务器建站系统?
,石家庄四十八中学官网?
建站168自助建站系统:快速模板定制与SEO优化指南
如何选择靠谱的建站公司加盟品牌?
建站主机无法访问?如何排查域名与服务器问题
制作证书网站有哪些,全国城建培训中心证书查询官网?
魔方云NAT建站如何实现端口转发?
C++时间戳转换成日期时间的步骤和示例代码
如何在腾讯云服务器上快速搭建个人网站?
如何选择高效便捷的WAP商城建站系统?
成都网站制作报价公司,成都工业用气开户费用?
专业商城网站制作公司有哪些,pi商城官网是哪个?
网站制作难吗安全吗,做一个网站需要多久时间?
如何快速搭建FTP站点实现文件共享?
如何做静态网页,sublimetext3.0制作静态网页?
威客平台建站流程解析:高效搭建教程与设计优化方案
用v-html解决Vue.js渲染中html标签不被解析的问题
制作网站公司那家好,网络公司是做什么的?
郑州企业网站制作公司,郑州招聘网站有哪些?
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
如何在阿里云虚拟服务器快速搭建网站?
建站之星微信建站一键生成小程序+多端营销系统
如何设置并定期更换建站之星安全管理员密码?
如何制作网站标识牌,动态网站如何制作(教程)?
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
建站之星ASP如何实现CMS高效搭建与安全管理?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
如何获取免费开源的自助建站系统源码?
如何在IIS管理器中快速创建并配置网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。