当前位置: 首页 > news >正文

长沙seo网站推广好看的网站的导航怎么做

长沙seo网站推广,好看的网站的导航怎么做,那个网站做租赁好,南昌优化网站分析这篇文章#xff0c;主要介绍如何通过Nginx服务器转发客户端的WebSocket接口到后端服务【知识星球】。 目录 一、Nginx配置WebSocket 1.1、Nginx配置内容 1.2、客户端请求地址 1.3、创建WebSocket测试工程 1.4、启动测试 1.5、WebSocket超时问题 1.5.1、设置超时时间 … 这篇文章主要介绍如何通过Nginx服务器转发客户端的WebSocket接口到后端服务【知识星球】。 目录 一、Nginx配置WebSocket 1.1、Nginx配置内容 1.2、客户端请求地址 1.3、创建WebSocket测试工程 1.4、启动测试 1.5、WebSocket超时问题 1.5.1、设置超时时间 1.5.2、建立心跳机制推荐 一、Nginx配置WebSocket 今天在工作中遇到了一个需求这个需求大概是前端和后端需要采用WebSocket方式来进行通信因为是WebSocket接口客户端需要知道通讯的接口地址WebSocket接口的地址格式是【ws://ip:port/xxx/yyy】其中ip和port是后端服务提供的/xxx/yyy是后端服务中提供的具体WebSocket接口地址。 这里就遇到了一个问题后端服务不止一台有可能启动两台服务采用不同的端口来区分客户端就不知道应该填写哪个port端口后面想到的解决方案是通过Nginx服务器进行WebSocket接口的转发让Nginx来决定调用哪个WebSocket接口而客户端只需要和Nginx服务器进行交互即可。 案例下载地址【https://download.csdn.net/download/qq_39826207/88883292】 1.1、Nginx配置内容 为了让Nginx能够代理转发WebSocket接口我们需要针对WebSocket接口地址配置一个location信息使用proxy_pass转发到具体的后端接口服务。在nginx.conf配置文件中添加如下配置内容 #user nobody; worker_processes 1;error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info;pid logs/nginx.pid;events {worker_connections 1024; }http {include mime.types;default_type application/octet-stream;log_format main $remote_addr - $remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for;access_log logs/access.log main;sendfile on;#tcp_nopush on;#keepalive_timeout 0;#gzip on;keepalive_timeout 65;# 定义变量兼容HTTP和WebSocket两种请求协议map $http_upgrade $connection_upgrade {default keep-alive; # 默认 keep-alive表示HTTP协议。websocket upgrade; # 若是 websocket 请求则升级协议 upgrade。}server {listen 9990;# 这里写后端接口服务提供的WebSocket完整地址# 例如我这里提供的WebSocket接口地址是 /demo/websocketlocation /demo/websocket {proxy_pass http://127.0.0.1:8880; # 转发到后端接口proxy_read_timeout 20s; # 设置超时时间默认是60sproxy_http_version 1.1;proxy_set_header Host $host; # 这个配置不要漏了必须要proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection $connection_upgrade;}} }注意上面配置中有两个内容需要配置见下图中的红色框框内容 1.2、客户端请求地址 浏览器客户端向【ws://127.0.0.1:9990/demo/websocket】建立连接当Nginx服务器接收到之后就会匹配上location的定义的规则此时会将【ws://127.0.0.1:9990/demo/websocket】地址转发到【ws://127.0.0.1:8880/demo/websocket】这个地址这就完成了WebSocket接口的转发功能。 注意点location后面定义的地址要和后端接口提供的WebSocket地址一模一样不能采用模糊匹配否则转发不了WebSocket接口。 刚开始我是参考网上的一些配置location后面之间使用的【/websocket】发现怎么也转发不了后面测试了才知道网上那些配置他们对应后端WebSocket接口地址就是【/websocket】所以他们可以转发成功。我的后端接口地址是【/demo/websocket】location配置成【/websocket】肯定是不行的。 1.3、创建WebSocket测试工程 为了模拟Nginx能否成功转发WebSocket接口这里我本地创建了一个WebSocket的测试工程如下所示 1.4、启动测试 第一步启动本地的WebSocket测试工程。第二步启动Nginx服务。第三步找一个在线的WebSocket测试工具查看【ws://127.0.0.1:9990/demo/websocket】是否可以连接成功。 这里我使用的是【https://wstool.js.org/】WebSocket在线测试工具如下图所示 从上图中我们可以知道WebSocket接口服务对外提供的是8880端口客户端连接的是9990端口端口不一致的情况下WebSocket依然连接成功了这说明我们配置的Nginx转发功能成功啦。 1.5、WebSocket超时问题 Nginx配置里面默认情况下WebSocket接口的超时时间是60s如果在60s里面都没有使用WebSocket进行发送消息那么此时就会断开WebSocket连接。 这种情况下我们客户端如果再次发送消息就会抛出异常因为WebSocket连接已经断开无法发送消息那么要如何解决这个问题呢 针对上面的问题可以有下面两种解决方案 1.5.1、设置超时时间 Nginx提供了一个【proxy_read_timeout】属性该属性可以用于设置WebSocket接口的超时时间默认是60s那么我们就可以设置成5分钟配置内容如下所示 # 这里写后端接口服务提供的WebSocket完整地址 # 例如我这里提供的WebSocket接口地址是 /demo/websocket location /demo/websocket {proxy_pass http://127.0.0.1:8880; # 转发到后端接口proxy_read_timeout 300s; # 设置超时时间默认是60sproxy_http_version 1.1;proxy_set_header Host $host; # 这个配置不要漏了必须要proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection $connection_upgrade; } 注意这种配置不推荐使用因为proxy_read_timeout属性治标不治本超过5分钟还是没有通信怎么办呢不依然会断开连接吗。 1.5.2、建立心跳机制推荐 最好的机制是让客户端和服务器之间每隔一段时间进行一次心跳通信例如让客户端每隔30s向服务器发送一次消息客户端有发送消息给服务端那么Nginx就知道当前这个WebSocket连接是有用的就不会将其断开。 注意假设超时时间是60s经过30s没有通信按理说再过30s没有通信就会断开连接但是如果客户端发送一条消息给服务端此时超时时间就会重新计算超时时间又会变成60s。 到此Nginx服务器转发WebSocket接口就配置完成啦。 综上这篇文章结束了主要介绍如何通过Nginx服务器转发客户端的WebSocket接口到后端服务。
http://www.hkea.cn/news/14422170/

相关文章:

  • 做色流网站要注意什么地方长春电商网站建设费用
  • 河南怎么样做网站房地产网站设计方案
  • 如何做攻击类型网站网站子页面怎么做
  • 采集网站文章做网站国家大学科技园郑州
  • 商丘网站制作公司一二三网络推广电子商务网页设计模板
  • 网站建设的公司收费标准优化方案生物必修一
  • 现在做网站一般多少钱可以进行网站外链建设的有
  • 用wordpress建立学校网站吗北海网站开发
  • 主流网站开发采用互联网网站模版
  • 广州手机网站建设公司哪家好软件开发专业知识技能
  • 建站系统软件有哪些wordpress微信登录页面模板
  • 网站app开发建设高水平高职院校 建设网站
  • 网站开发国外研究现状重庆建设机电网站
  • 怎么样建设一个网上教学网站wordpress架构
  • 北京网络网站建设公司梅州网站优化公司
  • python 网站开发代码在哪找公众号
  • 做网站的公司哪好公司注册资金实缴新政策出台2024
  • 上海网站备案审核时间网站播放功能难做吗
  • 用wordpress 扒站vi设计方案包括
  • 三网站建设电商网站建设基本流程图
  • 租门面做网站模版网站建设企业
  • 做的网站怎样适配手机网站ip地址是什么
  • 建设网站设计制作北京公司网站制作价格
  • 房产中介如何做网站建设厅和应急管理厅焊工证区别
  • 跨境电商建站公司商丘整站优化
  • 做长尾词优化去哪些网站做网约车网站
  • 织梦网站图片设置多大wordpress 图片cms主题
  • 个人做众筹网站合法吗wordpress 4.9更新
  • 江门站官网网站指数查询
  • 兼职网站高中生在家可做wordpress no7