最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx實(shí)戰(zhàn)之反向代理WebSocket的配置實(shí)例

 更新時(shí)間:2017年04月26日 09:59:23   作者:柒  
最近在工作中遇到一個(gè)需求,需要使用 nginx 反向代理websocket,經(jīng)過查找一番資料,目前已經(jīng)測試通過,所以這篇文章主要給大家介紹了Nginx反向代理WebSocket配置的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。

實(shí)現(xiàn)方案

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

WebSocket集群

在實(shí)際的生產(chǎn)環(huán)境中,要求多個(gè)WebSocket服務(wù)器必須具有高性能和高可用,那么WebSocket協(xié)議就需要一個(gè)負(fù)載均衡層,NGINX從1.3開始支持WebSocket,其可以作為一個(gè)反向代理和為WebSocket程序做負(fù)載均衡。

Nginx配置

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

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

代碼實(shí)例:

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";
  }
}

前端配置:

$(function(){
 socket.init();
});
//Nginx反向代理實(shí)現(xiàn)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連接發(fā)生錯(cuò)誤,請刷新頁面重試!")
  };
  webSocket.onopen = function(event) {
  };
  webSocket.onmessage = function(event) {
    };
 },
 sendData : function(data) {
  webSocket.send(data);
 },
}

最后,重啟下Nginx即可。

反向代理服務(wù)器在支持WebSocket時(shí)面臨的挑戰(zhàn)

  • WebSocket是端對端的,所以當(dāng)一個(gè)代理服務(wù)器從客戶端攔截一個(gè)Upgrade請求,它需要去發(fā)送它自己的Upgrade請求到后端服務(wù)器,也包括合適的頭。
  • 因?yàn)閃ebSocket是一個(gè)長連接,不像HTTP那樣是典型的短連接,所以反向代理服務(wù)器需要允許連接保持著打開,而不是在它們看起來空閑時(shí)就將它們關(guān)閉。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • nginx刷新頁面出現(xiàn)404解決方案(親測有效)

    nginx刷新頁面出現(xiàn)404解決方案(親測有效)

    本文主要介紹了nginx刷新頁面出現(xiàn)404解決方案,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • nginx啟動(dòng)服務(wù)提示98: Address already in use錯(cuò)誤的解決

    nginx啟動(dòng)服務(wù)提示98: Address already in use錯(cuò)誤的解決

    這篇文章主要給大家介紹了nginx啟動(dòng)服務(wù)提示98: Address already in use錯(cuò)誤的解決方法,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-05-05
  • Forever+nginx部署Node站點(diǎn)的方法示例

    Forever+nginx部署Node站點(diǎn)的方法示例

    這篇文章主要介紹了Forever+nginx部署Node站點(diǎn)的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 三步配置輕量級(jí)服務(wù)器nginx小結(jié)

    三步配置輕量級(jí)服務(wù)器nginx小結(jié)

    Nginx是一個(gè)安裝非常的簡單 , 配置文件非常簡潔,本文就來介紹一下三步配置輕量級(jí)服務(wù)器nginx,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08
  • Nginx的mirror指令示例配置

    Nginx的mirror指令示例配置

    這篇文章主要介紹了Nginx的mirror指令能干啥?mirror 指令提供的核心功能就是流量復(fù)制, 至于流量復(fù)制要用來干嘛,這個(gè)就各取所需了,需要的朋友可以參考下
    2022-05-05
  • Nginx中root和alias指令的使用與區(qū)別

    Nginx中root和alias指令的使用與區(qū)別

    root和alias是兩個(gè)重要但經(jīng)常令人混淆的指令,尤其用于指定資源在服務(wù)器文件系統(tǒng)中的位置,本文就來介紹一下兩個(gè)指令的使用與區(qū)別,感興趣的可以了解一下
    2024-08-08
  • Nginx的信號(hào)控制

    Nginx的信號(hào)控制

    今天小編就為大家分享一篇關(guān)于Nginx的信號(hào)控制,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • ngin配置301重定向設(shè)置方法和nginx子目錄301重定向

    ngin配置301重定向設(shè)置方法和nginx子目錄301重定向

    這篇文章主要介紹了ngin配置301重定向設(shè)置方法和nginx子目錄301重定向,需要的朋友可以參考下
    2014-04-04
  • 基于Nginx的Mencached緩存配置詳解

    基于Nginx的Mencached緩存配置詳解

    這篇文章主要介紹了基于Nginx的Mencached緩存配置詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • 詳解通過Nginx部署Django(基于ubuntu)

    詳解通過Nginx部署Django(基于ubuntu)

    這篇文章主要介紹了詳解通過Nginx部署Django(基于ubuntu),Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比較常見的一種方式,有興趣的可以了解一下。
    2017-01-01

最新評(píng)論

棋牌| 泽州县| 黑河市| 蕉岭县| 沙田区| 德安县| 孝感市| 南宁市| 温宿县| 赤壁市| 清丰县| 花莲县| 万荣县| 凤城市| 葫芦岛市| 新丰县| 屏山县| 香格里拉县| 合肥市| 平邑县| 襄城县| 哈巴河县| 博野县| 台南县| 铜山县| 涿州市| 那曲县| 兴隆县| 宁阳县| 高平市| 商城县| 甘洛县| 福建省| 夏邑县| 会东县| 渭源县| 西盟| 泰来县| 巴林右旗| 文山县| 赣榆县|