加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

WebSocket与Nginx的小秘密

发布时间:2019-07-22 21:37:16 所属栏目:业界 来源:今日头条
导读:署理处事器获取流量的方法 Nginx署理的方法 Nginx怎样支持WebSocket Nginx设置WebSocket方法 一、署理处事器获取流量的方法 客户端凡是城市直接与Web处事器举办通讯。那么当行使署理处事器作为客户端和处事器两者间一此中介时,署理处事器获取流量的方法有

  • 署理处事器获取流量的方法
  • Nginx署理的方法
  • Nginx怎样支持WebSocket
  • Nginx设置WebSocket方法

一、署理处事器获取流量的方法

客户端凡是城市直接与Web处事器举办通讯。那么当行使署理处事器作为客户端和处事器两者间一个“中介”时,署理处事器获取流量的方法有以下四种方法:

修改客户端:将客户端设置为行使署理处事器,那么客户端会直接将HTTP哀求故意的发送到署理处事器上。

修改收集:收集基本装备可以通过多少种技妙本领,在客户端不知情或没有参加的环境下,拦截收集流量并将其导入署理,这种署理称为拦截署理。

WebSocket与Nginx的小奥秘

修改DNS定名空间:放在Web处事器之前的署理处事器,更换物,会直接假扮Web处事器的名字和IP地点

修改Web处事器:将Web处事器设置为向客户端发送一条HTTP重定向呼吁,将客户端的哀求重定向到署理处事器上。

WebSocket与Nginx的小奥秘

二、Nginx署理的方法

客户端和署理处事器成立毗连并发送哀求,署理处事器端吸取客户端的哀求后与详细的处事器成立毗连,并把哀求分发给处事器举办处理赏罚,最后再将处事器的相应功效反馈给客户端。

三、Nginx怎样支持WebSocket

WebSocket 和HTTP固然是差异协议,可是两者“握手”方法兼容。通过HTTP进级机制,行使HTTP的Upgrade和Connection协议头的方法可以将毗连从HTTP进级为WebSocket。如下图所示

WebSocket与Nginx的小奥秘

Http进级为WebSocket

由于WebSocket协议是一个hop-by-hop协议(此类头部字段只对单次转发有用。会由于转发给缓存/署理处事器而失效),为了让Nginx署理处事器可以未来自客户端的Upgrade哀求发送到后端处事器,要求Upgrade和Connection的头信息必需被显式的配置。可以通过下文将要讲授的修改Nginx的设置文件方法办理此题目。

WebSocket与Nginx的小奥秘

署理处事器别离与客户端和处事器成立毗连,因为WebSocket毗连是长时刻保持的,以是署理处事器必要应承这些毗连处于打开状态,而不是像看待HTTP行使的短毗连那样将其封锁。

四、Nginx设置Websocket方法

通过修改nginx.conf设置,如下图所示

WebSocket与Nginx的小奥秘

1.map是按照客户端哀求中 $http_upgrade 的值来结构改变 $connection_upgrade 的值,即按照变量 $http_upgrade 的值和{} 里法则建设新的变量 $connection_upgrade并赋值。

2.HTTP的Upgrade协议头机制用于将毗连从HTTP毗连进级到WebSocket毗连,Upgrade机制行使了Upgrade协议头和Connection协议头;为了让Nginx可以未来自客户端的Upgrade哀求发送到后端处事器,Upgrade和Connection的头信息必需被显式的配置。如上图代码中第三个红圈。

五、总结

通过Http进级机制将Http进级为WebSocket。Nginx署理处事器通过修改设置的方法办理了WebSocket属于hop-by-hop协议的题目、并通过保持别离与客户端和处事端的毗连一向处于打开状态从而实现WebSokcet的署理。

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读