亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > Nginx > 正文

詳解nginx代理socket.io服務踩坑

2024-08-30 12:30:00
字體:
來源:轉載
供稿:網友

nginx代理了兩臺socket.io服務器。socket.io的工作模式是polling升級到websocket

現象

通過nginx請求服務時,出現了大量的400錯誤,有時候能升級到websocket,有時候會一直報錯。但是直接通過 ip+端口 訪問時,100%能成功。

nginx,代理,socket.io

分析

sid

sid是我們這個問題的關鍵。在初始創建連接時(polling模式就是在模擬一個長連接),客戶端會發起這樣的請求:

https://***/?EIO=3&transport=polling&t=1540820717277-0

服務端收到后會創建一個對象,綁定在這個連接上,同時返回一個sid(session id),來標記這個會話。會話指什么呢,會話是一連串的交互,這些交互之間是有聯系的,在我們這個場景下就是,下一次的http請求到來,我需要找到之前綁定在理論上的長連接(這里還沒有websocket,所以是理論上的)上的那個對象。我們知道http請求是無狀態的,每個請求之間獨立,所以socket.io引入了sid來做這件事。服務端收到請求后會生成一個sid,看下response:

 

復制代碼代碼如下:
{"sid":"EoGaL3fRQlpTOaLp5eST","upgrades":["websocket"],"pingInterval":8000,"pingTimeout":10000}

 

之后每次請求都需要帶上這個sid,建立websocket請求的連接也不例外。所以說,sid是polling,以及polling升級到websocket的關鍵。這之后的請求類似于:

https://***/?EIO=3&transport=polling&t=1540820717314-1&sid=EoGaL3fRQlpTOaLp5eSTorwss://***/?EIO=3&transport=websocket&t=1540820717314-1&sid=EoGaL3fRQlpTOaLp5eST

那么問題來了,如果請求是帶上的sid不是服務端生成的會怎樣呢?服務端會不認識,給你返回一個400,并告訴你

invalid sid

我們遇到的便是這個問題,nginx默認的負載均衡策略是輪詢,所以請求有可能會打到不是生成這個sid的機器上去,這時候我們就會收到一個400,如果運氣好,可能也會打到原來的機器上,運氣更好一點,甚至能堅持到websocket連接建立。

解決

這里提出兩種方案

  1. nginx的負載均衡采用ip_hash,這樣能保證一個客戶端的請求都走到一臺服務器上
  2. 不使用polling模式,只使用websocket

這兩種方案各有利弊。第二種顯而易見,不支持websocket的古老瀏覽器和客戶端將沒法工作。第一種的問題隱藏得比較深,試想,如果你增減了機器會怎樣,這時候ip_hash策略的模將變化,之前的連接將全部失效,而對于微服務,擴縮容是很頻繁的操作(特別是產品處于發展期),這種有損的擴縮容很大概率是不能接受的。

綜上,建議直接使用websocket,畢竟不支持websocket的老版本占比很少,而且相對于先polling,耗時也會減少。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线视频国产日韩| 亚洲一区二区日本| 亚洲精品av在线播放| 亚洲国产成人爱av在线播放| 91九色国产视频| 91免费精品视频| 免费91在线视频| 中文字幕精品一区久久久久| 日韩中文字幕在线| 久久久影视精品| 亚洲大胆美女视频| 亚洲无线码在线一区观看| 欧美中文字幕在线视频| 8090理伦午夜在线电影| 成人欧美一区二区三区黑人孕妇| 国产成人精品免高潮费视频| 日韩亚洲成人av在线| 91精品国产沙发| 黄网动漫久久久| 国内精品久久久久| 亚洲激情电影中文字幕| 国产精品一区久久| 日韩美女视频中文字幕| 久久99热精品这里久久精品| 欧美日韩免费网站| 国产视频精品免费播放| 久久九九免费视频| 日韩久久精品成人| 国产亚洲免费的视频看| 一区二区三区日韩在线| 国产第一区电影| 欧美视频在线观看免费网址| 国产精品96久久久久久又黄又硬| 伊人亚洲福利一区二区三区| 中文字幕自拍vr一区二区三区| 亚洲日本aⅴ片在线观看香蕉| 粉嫩老牛aⅴ一区二区三区| 富二代精品短视频| 97免费视频在线| 狠狠色狠狠色综合日日小说| 在线播放日韩欧美| 久久久久亚洲精品成人网小说| 亚洲天堂av图片| 5566日本婷婷色中文字幕97| 国产日韩欧美中文| 亚洲日韩中文字幕| 亚洲天堂影视av| 欧美一级bbbbb性bbbb喷潮片| 欧美日韩国产在线看| 91夜夜未满十八勿入爽爽影院| 亚洲国产精品资源| 国产精品免费视频久久久| 久99九色视频在线观看| 91在线色戒在线| 亚洲精品免费网站| 精品美女久久久久久免费| 91av在线精品| 色综合色综合网色综合| 97视频网站入口| 狠狠做深爱婷婷久久综合一区| 日韩理论片久久| wwwwwwww亚洲| 亚洲男人天堂2019| 美日韩精品免费视频| 久久精视频免费在线久久完整在线看| 亚洲人成电影网站色…| 精品国产一区二区三区久久久狼| 欧美成人免费视频| 欧美疯狂做受xxxx高潮| 日韩av免费一区| 欧美重口另类videos人妖| 亚洲a一级视频| 国产一区二区欧美日韩| 亚洲久久久久久久久久久| 亚洲xxxx3d| 精品一区电影国产| 亚洲激情中文字幕| 成人国产精品免费视频| 国产精品劲爆视频| 77777少妇光屁股久久一区| 久久精品国产亚洲7777| 国产亚洲欧洲高清一区| 在线午夜精品自拍| 2019亚洲日韩新视频| 日韩欧美精品在线观看| 中文国产成人精品| 国产精品美女999| 亚洲网站在线播放| 欧美风情在线观看| 亚洲国产美女精品久久久久∴| 精品久久久久久久久久| 2019中文字幕在线| 2018国产精品视频| 久久视频这里只有精品| 亚洲成人网在线观看| 久久69精品久久久久久国产越南| 高跟丝袜欧美一区| 91精品久久久久| 欧美激情免费观看| 91精品在线一区| 欧美中文字幕在线视频| 欧美激情精品久久久久久黑人| 久久综合免费视频| 91av在线免费观看视频| 欧洲成人免费aa| 美日韩丰满少妇在线观看| 精品五月天久久| 最近2019年日本中文免费字幕| 萌白酱国产一区二区| 国产精品视频久久| 91po在线观看91精品国产性色| 懂色aⅴ精品一区二区三区蜜月| 91av视频在线免费观看| 久久97久久97精品免视看| 2021久久精品国产99国产精品| 亚洲欧美中文字幕在线一区| 国产精品激情av电影在线观看| 日韩av中文字幕在线免费观看| 国产精品香蕉在线观看| 亚洲精品视频播放| 亚洲第一福利在线观看| 欧美黑人极品猛少妇色xxxxx| 尤物99国产成人精品视频| 国产精品黄页免费高清在线观看| 亚洲欧美国产精品va在线观看| 亚洲理论电影网| 国产999精品久久久| 国产精品视频免费在线| 欧美激情xxxxx| 久久天天躁狠狠躁夜夜爽蜜月| 91精品久久久久久久| 久久久久久久久久久久久久久久久久av| 欧美日韩精品在线视频| 国产精品视频色| 国模精品视频一区二区| 亚洲免费福利视频| 亚洲欧美日韩国产中文专区| 色偷偷偷亚洲综合网另类| 亚洲精品xxxx| 欧美专区日韩视频| 国产啪精品视频网站| 欧美综合国产精品久久丁香| 粉嫩av一区二区三区免费野| 成人性生交大片免费观看嘿嘿视频| 55夜色66夜色国产精品视频| 伊人久久久久久久久久久| 色噜噜国产精品视频一区二区| 91在线免费观看网站| 伊人精品在线观看| 一色桃子一区二区| 成人国产在线视频| 精品国内自产拍在线观看| 国产精品夜色7777狼人| 亚洲女性裸体视频| 亚洲色图15p| 精品视频久久久久久| 色天天综合狠狠色| 久久免费成人精品视频| 色偷偷88888欧美精品久久久| 最新中文字幕亚洲| 日韩欧美国产骚| 精品久久久国产精品999| 国产精品久久久久久久av大片| 成人在线中文字幕|