中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

WebSocket與Nginx的小秘密

2019-07-23    來源:天下數據IDC資訊

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

代理服務器獲取流量的方式 Nginx代理的方式 Nginx如何支持WebSocket Nginx配置WebSocket方式

一、代理服務器獲取流量的方式

客戶端通常都會直接與Web服務器進行通信。那么當使用代理服務器作為客戶端和服務器兩者間一個“中介”時,代理服務器獲取流量的方式有以下四種方式:

修改客戶端:將客戶端配置為使用代理服務器,那么客戶端會直接將HTTP請求有意的發(fā)送到代理服務器上。

修改網絡:網絡基礎設備可以通過若干種技術手段,在客戶端不知情或沒有參與的情況下,攔截網絡流量并將其導入代理,這種代理稱為攔截代理。

修改DNS命名空間:放在Web服務器之前的代理服務器,替代物,會直接假扮Web服務器的名字和IP地址

修改Web服務器:將Web服務器配置為向客戶端發(fā)送一條HTTP重定向命令,將客戶端的請求重定向到代理服務器上。

WebSocket與Nginx的小秘密

二、Nginx代理的方式

客戶端和代理服務器建立連接并發(fā)送請求,代理服務器端接收客戶端的請求后與具體的服務器建立連接,并把請求分發(fā)給服務器進行處理,最后再將服務器的響應結果反饋給客戶端。

三、Nginx如何支持WebSocket

WebSocket 和HTTP雖然是不同協(xié)議,但是兩者“握手”方式兼容。通過HTTP升級機制,使用HTTP的Upgrade和Connection協(xié)議頭的方式可以將連接從HTTP升級為WebSocket。如下圖所示

WebSocket與Nginx的小秘密

Http升級為WebSocket

因為WebSocket協(xié)議是一個hop-by-hop協(xié)議(此類頭部字段只對單次轉發(fā)有效。會因為轉發(fā)給緩存/代理服務器而失效),為了讓Nginx代理服務器可以將來自客戶端的Upgrade請求發(fā)送到后端服務器,要求Upgrade和Connection的頭信息必須被顯式的設置?梢酝ㄟ^下文將要講解的修改Nginx的配置文件方式解決此問題。

WebSocket與Nginx的小秘密

代理服務器分別與客戶端和服務器建立連接,由于WebSocket連接是長時間保持的,所以代理服務器需要允許這些連接處于打開狀態(tài),而不是像對待HTTP使用的短連接那樣將其關閉。

四、Nginx配置Websocket方式

通過修改nginx.conf配置,如下圖所示

WebSocket與Nginx的小秘密

1.map是根據客戶端請求中 $http_upgrade 的值來構造改變 $connection_upgrade 的值,即根據變量 $http_upgrade 的值和{} 里規(guī)則創(chuàng)建新的變量 $connection_upgrade并賦值。

2.HTTP的Upgrade協(xié)議頭機制用于將連接從HTTP連接升級到WebSocket連接,Upgrade機制使用了Upgrade協(xié)議頭和Connection協(xié)議頭;為了讓Nginx可以將來自客戶端的Upgrade請求發(fā)送到后端服務器,Upgrade和Connection的頭信息必須被顯式的設置。如上圖代碼中第三個紅圈。

五、總結

通過Http升級機制將Http升級為WebSocket。Nginx代理服務器通過修改配置的方式解決了WebSocket屬于hop-by-hop協(xié)議的問題、并通過保持分別與客戶端和服務端的連接一直處于打開狀態(tài)從而實現(xiàn)WebSokcet的代理。

【凡本網注明來源非中國IDC圈的作品,均轉載自其它媒體,目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責!

延伸閱讀:

  • 臺達電動車及插電式混合動力車技術實力獲菲亞特克萊斯勒汽車肯定
  • Hadoop與 Spark - 選擇正確的大數據框架
  • Hadoop現(xiàn)在怎么樣了?

標簽: WebSocket Nginx WebSocket與Ngi

版權申明:本站文章部分自網絡,如有侵權,請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:“北上深”數據中心2019產業(yè)政策淺析,數據中心

下一篇:英特爾和SAP深化數據中心技術合作