一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

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

服務(wù)器之家 - 服務(wù)器技術(shù) - Nginx - Nginx轉(zhuǎn)發(fā)socket端口配置詳解

Nginx轉(zhuǎn)發(fā)socket端口配置詳解

2020-01-09 14:38he_xd Nginx

這篇文章主要介紹了Nginx轉(zhuǎn)發(fā)socket端口配置詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

Nginx 轉(zhuǎn)發(fā) socket 端口常見(jiàn)場(chǎng)景:在線學(xué)習(xí)應(yīng)用,在常規(guī)功能之外,增加一個(gè)聊天室功能,后端選擇 swoole 提供服務(wù)提供者,同時(shí)不想前端直接 ip:port 方式鏈接到服務(wù),需要使用 Nginx 進(jìn)行轉(zhuǎn)發(fā)。

常規(guī)情況,我們可以在用戶頁(yè)面,直接建立 socket 鏈接,但這樣的操作會(huì)暴露端口,帶來(lái)一定的安全隱患,使用 Nginx 進(jìn)行轉(zhuǎn)發(fā),可以隱藏端口。額外的問(wèn)題就是一些 header 參數(shù)也需要在轉(zhuǎn)發(fā)過(guò)程中帶給 socket 服務(wù)提供者,其他只需要 Nginx 處理一下從常規(guī)協(xié)議轉(zhuǎn)換到 Websocket 就可以。

其中,"Upgrade" 是 逐跳(hop-by-hop) 頭,無(wú)法從客戶端轉(zhuǎn)發(fā)到代理服務(wù)器,通過(guò)轉(zhuǎn)發(fā)代理,客戶端可以使用 CONNECT 方法來(lái)規(guī)避此問(wèn)題。但是,這不適用于反向代理,因?yàn)榭蛻舳瞬恢廊魏未矸?wù)器,并且需要在代理服務(wù)器上進(jìn)行特殊處理。同時(shí)逐跳頭包含 "Upgrade" 和 "Connection" 都無(wú)法傳遞,則需要在轉(zhuǎn)換為 Websocket 的時(shí)候帶上這兩個(gè)參數(shù):例如:

?
1
2
3
4
5
6
location /chat/ {
  proxy_pass http://backend;
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
}

進(jìn)階:讓轉(zhuǎn)發(fā)到代理服務(wù)器的 "Connection" 頭字段的值,取決于客戶端請(qǐng)求頭的 "Upgrade" 字段值。例如:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
http {
  map $http_upgrade $connection_upgrade {
    default upgrade;
    ''   close;
  }
 
  server {
    ...
 
    location /chat/ {
      proxy_pass http://backend;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection $connection_upgrade;
    }
  }

注意:示例中的 http://backend 為一組負(fù)載均衡的服務(wù)器,只有單臺(tái)服務(wù)器的,可以寫成 proxy_pass http://127.0.0.1:9501; 這樣的。

此外,默認(rèn)情況下,在 60 秒內(nèi)未傳送任何數(shù)據(jù)的鏈接將被關(guān)閉,時(shí)間可以使用 proxy_read_timeout 指令來(lái)延長(zhǎng)。或者代理服務(wù)器可以配置定時(shí)發(fā)送 ping 幀來(lái)重置超時(shí)及檢查鏈接是否可用。

參考鏈接: Nginx Websocket proxying

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://segmentfault.com/a/1190000019377209

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 无限在线观看免费入口 | 国产一级片免费观看 | 日本精品久久久久久久久免费 | 美女牲交毛片一级视频 | 美女尿口照片 | 女主被当众调教虐np | 亚洲mm色国产网站 | 暖暖 免费 高清 日本 在线1 | 国产午夜免费 | 日韩在线免费 | free白嫩性hd | 红楼影视h38bar在线线播放 | 久久re6热在线视频 久久AV喷吹AV高潮欧美 | 欧美亚洲国产精品久久第一页 | 小草高清视频免费直播 | 成人影院在线观看视频 | 日韩色图区 | 肉大捧一进一出视频免费播放 | 欧美特黄三级在线观看 | 女娃开嫩苞经历小说 | 暖暖影院日本版 | 国产成人a v在线影院 | 人禽l交视频在线播放 视频 | 美女奶口隐私免费视频网站 | 免费免费啪视频在线观播放 | 国产福利在线观看第二区 | 青草香蕉精品视频在线观看 | 亚洲七七久久综合桃花 | 亚洲精品色婷婷在线影院麻豆 | 日韩精品免费一区二区三区 | 热99re国产久热在线 | 色综合欧美色综合七久久 | 日韩免费 | 黑人粗长巨茎小说 | 免看一级a一片成人123 | 好男人影视社区www在线观看 | 国产成人激情视频 | bl高h荡肉古代np | 奇米影视777最新在线 | 国产精品手机视频一区二区 | 国产精品女同久久免费观看 |