欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

WebSocket集群

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

Nginx配置

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

NGINX通過(guò)允許一個(gè)在客戶端和后端服務(wù)器之間建立的隧道來(lái)支持WebSocket。為了NGINX發(fā)送來(lái)至于客戶端Upgrade請(qǐng)求到后端服務(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ò)誤,請(qǐng)刷新頁(yè)面重試!")
  };
  webSocket.onopen = function(event) {
  };
  webSocket.onmessage = function(event) {
    };
 },
 sendData : function(data) {
  webSocket.send(data);
 },
}

最后,重啟下Nginx即可。

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

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

總結(jié)

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

相關(guān)文章

  • 通過(guò)Nginx解決網(wǎng)絡(luò)隔離實(shí)踐記錄詳解

    通過(guò)Nginx解決網(wǎng)絡(luò)隔離實(shí)踐記錄詳解

    這篇文章主要介紹了通過(guò)Nginx解決網(wǎng)絡(luò)隔離實(shí)踐記錄詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 深入理解nginx的access.log文件

    深入理解nginx的access.log文件

    NGINX軟件會(huì)把每個(gè)用戶訪問(wèn)網(wǎng)站的日志記錄到指定的日志文件里,供網(wǎng)站者分析用戶的瀏覽行為,本文主要介紹了nginx的access.log文件,感興趣的可以了解一下
    2023-09-09
  • 用Nginx反向代理Node.js的方法

    用Nginx反向代理Node.js的方法

    本篇文章主要介紹了用Nginx反向代理Node.js的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • nginx反向代理webSocket配置詳解

    nginx反向代理webSocket配置詳解

    這篇文章主要介紹了nginx反向代理webSocket配置詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • 淺析Nginx配置文件中的變量的編寫(xiě)使用

    淺析Nginx配置文件中的變量的編寫(xiě)使用

    這篇文章主要介紹了Nginx配置文件中的變量的編寫(xiě)使用,包括從常用的rewrite等方面來(lái)深入變量的相關(guān)定義,需要的朋友可以參考下
    2016-01-01
  • nginx basic認(rèn)證的實(shí)現(xiàn)示例

    nginx basic認(rèn)證的實(shí)現(xiàn)示例

    auth_basic作為一個(gè)認(rèn)證模塊,在apache和nginx中都很常用,本文主要介紹了nginx basic認(rèn)證的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • windows下nginx服務(wù)關(guān)不掉問(wèn)題解決

    windows下nginx服務(wù)關(guān)不掉問(wèn)題解決

    這篇文章主要給大家介紹了關(guān)于windows下nginx服務(wù)關(guān)不掉問(wèn)題解決的相關(guān)資料,nginx是一種網(wǎng)絡(luò)服務(wù)器,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • 關(guān)于nginx+php5.3.8+eclipse3.7工作空間的配置方法

    關(guān)于nginx+php5.3.8+eclipse3.7工作空間的配置方法

    以前用eclipse3.6時(shí)設(shè)置php服務(wù)器時(shí)完全可以在base url欄填寫(xiě)自己工作空間的目錄,然后修改nginx.conf加一個(gè)alias就行了
    2011-11-11
  • Nginx服務(wù)器的反向代理proxy_pass配置方法講解

    Nginx服務(wù)器的反向代理proxy_pass配置方法講解

    這篇文章主要介紹了Nginx服務(wù)器的反向代理proxy_pass配置方法講解,包括經(jīng)常被提到的url的/問(wèn)題的相關(guān)說(shuō)明,需要的朋友可以參考下
    2016-01-01
  • nginx訪問(wèn)返回504問(wèn)題及解決

    nginx訪問(wèn)返回504問(wèn)題及解決

    這篇文章主要介紹了nginx訪問(wèn)返回504問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05

最新評(píng)論