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

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - Nginx - Nginx實戰之反向代理WebSocket的配置實例

Nginx實戰之反向代理WebSocket的配置實例

2019-11-26 16:50 Nginx

最近在工作中遇到一個需求,需要使用 nginx 反向代理websocket,經過查找一番資料,目前已經測試通過,所以這篇文章主要給大家介紹了Nginx反向代理WebSocket配置的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧。

實現方案

采用目前比較成熟的WebSocket技術,WebSocket協議為創建客戶端和服務器端需要實時雙向通訊的webapp提供了一個選擇。其為HTML5的一部分,WebSocket相較于原來開發這類app的方法來說,其能使開發更加地簡單。大部分現在的瀏覽器都支持WebSocket,比如Firefox,IE,Chrome,Safari,Opera,并且越來越多的服務器框架現在也同樣支持WebSocket。

WebSocket集群

在實際的生產環境中,要求多個WebSocket服務器必須具有高性能和高可用,那么WebSocket協議就需要一個負載均衡層,NGINX從1.3開始支持WebSocket,其可以作為一個反向代理和為WebSocket程序做負載均衡。

Nginx配置

注:看官方文檔說 Nginx 在 1.3 以后的版本才支持 websocket 反向代理,所以要想使用支持 websocket 的功能,必須升級到 1.3 以后的版本

NGINX通過允許一個在客戶端和后端服務器之間建立的隧道來支持WebSocket。為了NGINX發送來至于客戶端Upgrade請求到后端服務器,Upgrade和Connection頭部必須被設置明確。

代碼實例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
upstream wsbackend {
  server 127.0.0.1:8080;
  server 127.0.0.1:8081;
}
server {
  listen  80;
  server_name ws.52itstyle.com;
  location / {
   proxy_pass http://wsbackend;
   proxy_http_version 1.1;
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "upgrade";
  }
}

前端配置:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$(function(){
 socket.init();
});
//Nginx反向代理實現websocket
var basePath = "ws://ws.52itstyle.com//acts_competition/";
socket = {
 webSocket : "",
 init : function() {
  if ('WebSocket' in window) {
   webSocket = new WebSocket(basePath+'webSocketServer');
  }
  else if ('MozWebSocket' in window) {
   webSocket = new MozWebSocket(basePath+"webSocketServer");
  }
  else {
   webSocket = new SockJS(basePath+"sockjs/webSocketServer");
  }
  webSocket.onerror = function(event) {
   //alert("websockt連接發生錯誤,請刷新頁面重試!")
  };
  webSocket.onopen = function(event) {
  };
  webSocket.onmessage = function(event) {
    };
 },
 sendData : function(data) {
  webSocket.send(data);
 },
}

最后,重啟下Nginx即可。

反向代理服務器在支持WebSocket時面臨的挑戰

  • WebSocket是端對端的,所以當一個代理服務器從客戶端攔截一個Upgrade請求,它需要去發送它自己的Upgrade請求到后端服務器,也包括合適的頭。
  • 因為WebSocket是一個長連接,不像HTTP那樣是典型的短連接,所以反向代理服務器需要允許連接保持著打開,而不是在它們看起來空閑時就將它們關閉。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:http://blog.52itstyle.com/archives/736/

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲麻豆精品果冻传媒 | 四虎1515hhh co m | 国产成人亚洲精品91专区手机 | 国产精品国产精品国产三级普 | 亚洲 无码 制服 日韩 | 色哟哟久久| 国色天香社区在线视频免费观看 | 91庥豆果冻天美精东蜜桃传媒 | 男同巨黄gay小说好爽 | 99九九国产精品免费视频 | 水野朝阳厨房系列在线观看 | 男人曰女人 | 欧美一区精品二区三区 | 免费看国产精品久久久久 | 国产午夜精品福利 | 我和老丈洗澡同性 | 青青91| 精品视频免费在线观看 | 国产高清在线播放免费观看 | 精东影业传媒全部作品 | 夫妇交换小说全文阅读 | 99久久精品免费看国产四区 | 美女光屁股网站 | 99久久国产综合精品麻豆 | 日本全黄三级在线观看 | 成人网子 | 亚洲国产天堂久久综合网站 | 强波多野结衣女教师 | 国产特黄一级一片免费 | 欧美日韩精彩视频 | 美女吃男生鸡鸡 | 9热在线精品视频观看 | 欧美又大又粗又爽视频 | 毛片群 | 四虎影视网站 | 国产激情久久久久影院小草 | 国产精品久久久久aaaa | 晓雪老师我要进你里面好爽 | 污污在线免费观看 | 激情影院网站 | 国产精品美女久久久久网站 |