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

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

云服務器|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/

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色操网 | 加勒比京东热 | 国产精品资源站 | 国产精品亚欧美一区二区三区 | 亚洲欧美综合在线观看 | 欧洲网色偷偷亚洲男人的天堂 | 日本老师动漫 | 校花在公车上被内射好舒服 | 国产真实偷乱视频在线观看 | chinese男gay| 精品推荐国产麻豆剧传媒 | 热久久亚洲 | 日本免费一二区 | 免费日本视频 | 天天性综合 | 5g影院成人 | 香蕉91视频 | 四虎免费影院4hu永久免费 | 免费观看a毛片一区二区不卡 | 草草影院永久在线观看 | 国产成人99久久亚洲综合精品 | 国产一区二区三区日韩 | 奇米激情| 视频国产精品 | 亚洲男人精品 | 金莲你下面好紧夹得我好爽 | 国产欧美综合精品一区二区 | 国产综合成色在线视频 | 学校捏奶揉下面污文h | 欧美高清videosdesex0 | 四虎国产成人免费观看 | 国内交换一区二区三区 | 久久久久久久伊人电影 | 国产欧美精品一区二区三区四区 | 日韩毛片基地一区二区三区 | 国产午夜亚洲精品不卡 | 色综色 | 毛片在线观看网站 | 精品国产在天天线在线麻豆 | 高清在线观看mv的网址免费 | 欧美午夜精品久久久久久黑人 |