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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国内精品一级毛片免费看 | 欧美熟videos肥婆 | 亚洲一区在线观看视频 | 一区二区三区欧美在线 | 亚洲影视中文字幕 | 一级裸体视频 | 欧美成人福利 | 综合精品视频 | 欧美成人免费一区二区三区 | 91在线色 | 欧美无极品| 国产精品呻吟 | 亚洲精品3 | 欧美日韩中文字幕在线视频 | 色悠悠久久久久 | 亚洲天堂在线电影 | 一级欧美日韩 | 欧美淫视频| 国产精品一品二区三区四区18 | 一区二区免费看 | 日本一区视频在线观看 | 欧美视频国产精品 | 男女羞羞视频在线观看免费 | 在线a亚洲视频播放在线观看 | 欧美日韩一区二区综合 | 色综合久久久久久久久久久 | 中文字幕综合在线观看 | 2级毛片 | 91视频观看 | 91久久国产露脸精品免费 | 视频一区国产 | 久久夜靖品2区 | 成人毛片网 | 中文字幕在线观看日韩 | 视频一区二区三区免费观看 | asian裸体佳人pics | 激情黄页 | 久久亚洲一区二区三区成人国产 | 日本欧美一区 | 久草在线最新免费 | h视频在线免费观看 |