激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

云服務(wù)器|WEB服務(wù)器|FTP服務(wù)器|郵件服務(wù)器|虛擬主機(jī)|服務(wù)器安全|DNS服務(wù)器|服務(wù)器知識(shí)|Nginx|IIS|Tomcat|

WebSocket與Nginx的小秘密

2019-07-24 15:18今日頭條聚IT 服務(wù)器知識(shí)

客戶端和代理服務(wù)器建立連接并發(fā)送請(qǐng)求,代理服務(wù)器端接收客戶端的請(qǐng)求后與具體的服務(wù)器建立連接,并把請(qǐng)求分發(fā)給服務(wù)器進(jìn)行處理,最后再將服務(wù)器的響應(yīng)結(jié)果反饋給客戶端。

代理服務(wù)器獲取流量的方式

Nginx代理的方式

Nginx如何支持WebSocket

Nginx配置WebSocket方式

一、代理服務(wù)器獲取流量的方式

客戶端通常都會(huì)直接與Web服務(wù)器進(jìn)行通信。那么當(dāng)使用代理服務(wù)器作為客戶端和服務(wù)器兩者間一個(gè)“中介”時(shí),代理服務(wù)器獲取流量的方式有以下四種方式:

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

修改網(wǎng)絡(luò):網(wǎng)絡(luò)基礎(chǔ)設(shè)備可以通過若干種技術(shù)手段,在客戶端不知情或沒有參與的情況下,攔截網(wǎng)絡(luò)流量并將其導(dǎo)入代理,這種代理稱為攔截代理。

WebSocket與Nginx的小秘密

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

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

WebSocket與Nginx的小秘密

二、Nginx代理的方式

客戶端和代理服務(wù)器建立連接并發(fā)送請(qǐng)求,代理服務(wù)器端接收客戶端的請(qǐng)求后與具體的服務(wù)器建立連接,并把請(qǐng)求分發(fā)給服務(wù)器進(jìn)行處理,最后再將服務(wù)器的響應(yīng)結(jié)果反饋給客戶端。

三、Nginx如何支持WebSocket

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

WebSocket與Nginx的小秘密

Http升級(jí)為WebSocket

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

WebSocket與Nginx的小秘密

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

四、Nginx配置Websocket方式

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

WebSocket與Nginx的小秘密

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

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

五、總結(jié)

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美性猛交xxx乱大交3蜜桃 | 日本黄色一级毛片 | 国产日韩在线视频 | 国产精品剧情一区二区三区 | 成人不卡| 欧美久久久久久久久 | 欧美毛片 | 在线1区| 99热1 | 黄色一级片毛片 | 欧美亚洲国产成人综合在线 | 久久久久二区 | www.guochanav.com| 久在线观看福利视频69 | 精品国产高清一区二区三区 | 最污网站 | 精品国产91久久久久久久妲己 | 欧美日本另类 | 韩国19禁在线| 国产亲子伦在线观看 | 日本教室三级在线看 | 91久久精品国产亚洲 | 久久久久久久久久久综合 | 国产成人精品无人区一区 | 中文字幕免费看 | 精品一区二区三区免费看 | 中国漂亮护士一级a毛片 | 久久久久日本精品一区二区三区 | 一级黄色片武则天 | 欧美成人激情在线 | 国产在线精品一区二区三区 | 92精品国产自产在线 | 欧美精选一区二区 | 美女一级毛片 | 91精品国产乱码久久久久 | 午夜a狂野欧美一区二区 | 免费淫视频 | 国产精品无码久久久久 | 中文字幕国| 欧美a v在线 | 91经典视频|