1. 程式人生 > >對Socket.io進行負載均衡

對Socket.io進行負載均衡

對Websocket進行負載均衡

http {
    // ...省略

    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
    }

    upstream websocketCluster {
        ip_hash;
        server 127.0.0.1:6181;
        server 127.0.0.1:6182;
    }

    server {
        listen       80;
        proxy_pass   httpCluster;
        #域名可以有多個,用空格隔開
server_name localhost 127.0.0.1; location /chat { # proxy_pass 127.0.0.1:6181 proxy_pass websocketCluster proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1
; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } // ...省略 }

socket.io負載均衡

###伺服器
var chat = io.of('/chat');
chat.on('connection', function(socket){});
###客戶端
var socket = require('socket.io-client')('http://localhost/chat');

由於伺服器有很多虛擬主機需要代理,想通過/chat/路徑對websocket分發,socket.io-client連線時一直無法連線。

#檢視socket.io詳細DEBUG資訊
DEBUG=* node socketClient.js

engine.io-client:polling polling +0ms
  engine.io-client:polling-xhr xhr poll +0ms
  engine.io-client:polling-xhr xhr open GET: http://localhost/socket.io/?EIO=3&transport=polling&t=1445484908552-6&b64=1&sid=dwJSvjOsMPxKwnP9AAAB +0ms
var io = require('socket.io')(httpServer,{
   "path":"/chat",         //客戶端和伺服器端都指定連線的Url
  "serveClient": false });

或者將Nginx的路徑改為/socket.io/就好了。

參照

相關推薦

Socket.io進行負載均衡

對Websocket進行負載均衡 http { // ...省略 map $http_upgrade $connection_upgrade { default upgrade; '' close

Azure Application Gateway(一)後端 Web App 進行負載均衡

一,引言   今天,我們學習一個新的知識點-----Azure Application Gateway,通過Azure 應用程式閘道器為我麼後端的服務提供負載均衡的功能。我們再文章頭中大概先了解一下什麼是應用程式閘道器。   Azure Application Gateway 是一種應用程式層(OSI 層 7

Azure Application Gateway(二)後端 VM 進行負載均衡

一,引言   上一節有講到使用 Azure Application Gateway 為我們後端型別為 Web App 的 Demo 專案提供負載均衡,Azure Application Gateway 的後端池的目標型別可以是多中型別,如下圖所示: 目標型別分別是: 1,IP address or FQD

Azure Front Door(二)後端 VM 進行負載均衡

一,引言   上一篇我們講到通過 Azure Front Door 為我們的 Azure App Service 提供流量轉發,而整個 Azure Front Door 在新增後端池的時候可選的後端型別是支援多種Azure Service,如下圖所示: 目標型別可為: 1,App Service(應用服務

Nginx實現tomcat集群進行負載均衡

相同 fig end 出現 bytes agent 請求轉發 forward weight 一、背景   隨著業務量和用戶數量的激增,單一的tomcat部署應用已經無法滿足性能需求,而且對於每次發布項目期間服務不可用的問題也凸顯,既然出現了這個問題,那麽我們本文就借助ng

IIS7 使用server farms 進行負載均衡

重分發 http 重寫 圖標 reat nload body 一定的 iis7 1、首先,到微軟官網下載web平臺安裝程序: https://www.microsoft.com/web/downloads/ 2、安裝好後,會在IIS裏有這個圖標: 3、雙擊這個圖

Nginx進行負載均衡

由於目前現有網路的各個核心部分隨著業務量的提高,訪問量和資料流量的快速增長,其處理能力和計算強度也相應地增大,使得單一的伺服器裝置根本無法承擔。在此情況下,如果扔掉現有裝置去做大量的硬體升級,這樣將造成現有資源的浪費,而且如果再面臨下一次業務量的提升時,這又將導致再一次硬體升級的高額成本投入,甚至效

SpringCloud | Feign如何整合Ribbon進行負載均衡的?

Ribbon是SpringCloud框架進行負載均衡的腳手架,貫穿springCloud專案中所有的http服務呼叫。Ribbon針對RestTemplate負載均衡已經提供了完整實現,網上很多的ribbon demo也是分析restTemplate如何負載均衡的。 而我們

一 .fastDFS:Linux 搭建分散式檔案儲存FastDFS圖片伺服器以及配合nginx / 使用Nginx進行負載均衡

    Linux 安裝分散式檔案儲存FastDFS圖片伺服器以及配合nginx/使用Nginx進行負載均衡 alfresco    虛擬網路編輯器修改閘道器    修改成對應的閘道器及ip:vim /etc/syscon

使用nginx進行負載均衡

0,基本資訊 Tomcat8.0.37,JDK1.7.0_79-B15,Nginx1.9.13,CentOS7.0 1,需要實現的效果 需要實現的效果(單臺伺服器): 1,使用Nginx實現負載均衡 2,使用多個Tomcat作為應用伺服器 3,靜態資源從Tomcat中分離 Nginx的埠為

基於netty框架的socket長連線負載均衡解決方案

前言 物聯網如今是一個大的趨勢,但是概念還比較新穎。大家對這一塊的技術積累也比較匱乏,藉此前段時間摩拜單車出現了大規模癱瘓的現象。我們今天來討論一下物聯網專案的開發方式。 關於tcp/ip 相關的知識點 socket通訊的單機瓶頸 物聯網的專案socket使用方式

06mycat使用haproxy進行負載均衡

apr map latest slot rsize basename cluster www jump 集群的服務器列表 在10.11.0.210和10.11.0.216中部署mycat和haproxy(因為實驗機器性能有限,實際生產環境中需要單獨用服務做hapr

FreeSWITCH折騰筆記8——使用OpenSIPS進行負載均衡

通過OpenSIPS對FreeSWITCH進行負載均衡網路上的文章很多,但都是基於老版本的OpenSIPS,目前最新的OpenSIPS LTS版是2.4,如果使用老版本配置檔案,OpenSIPS是執行不起來(當然通過一番修改後還是可以執行起來的)。筆者經過一番折騰,成

Sysbench磁碟IO進行效能測試

Sysbench 是一種系統性能 benchmark SysBench 是一款開源的、跨平臺的、模組化的、多執行緒的效能測試工具, 通過高負載地執行在資料庫上, 可以執行 CPU/記憶體/執行緒/IO

Nginx簡單介紹以及linux下使用Nginx進行負載均衡的搭建

今天我們來討論一下關於Nginx的一些簡單理解和認識,首先對Nginx進行一下簡單的介紹 1.Nginx簡介 Nginx是一款高效能的http 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器。由俄羅斯的程式設計師Igor Sy

springcloud中zuul與consul整合進行負載均衡

第一步:向consul註冊服務 配置檔案application.yml為 server: port: 8080 spring: application: name: zuulserver cloud: consul: discov

12.17 Nginx負載均衡 12.18 ssl原理 12.19 生成ssl密鑰12.20 Nginx配置ssl

12.17 nginx負載均衡 12.18 ssl原理 12.19 生成ssl密鑰對12.20 nginx配置ssl12.17 Nginx負載均衡12.18 ssl原理12.19 生成ssl密鑰對12.20 Nginx配置ssl擴展針對請求的uri來代理 http://ask.apelearn.com/que

Nginx負載均衡、ssl原理、生成ssl密鑰、Nginx配置ssl

lnmp架構Nginx負載均衡當用戶訪問nginx定制好的域名時,nginx通過轉發到幾臺真實的站點,通過upstream實現[root@centos7 vhost]# vim /usr/local/nginx/conf/vhost/load.confupstream www.tt.com#自定義域名{#

linux的Nginx負載均衡、ssl原理、生成ssl密鑰、Nginx配置ssl介紹

block server u tlsv1 host fda 彈出 配置ssl 重新編譯 openssl Nginx的負載均衡 1. 查找www.qq.com域名對應IP做測試 [root@gary-tao ~]# yum install -y bind-utils /

Nginx負載均衡、ssl原理、生產ssl密鑰、Nginx配置ssl

基於 location 顯示 工作流程 流程 創建 docs 有效 match 12.17 Nginx負載均衡 Nginx負載均衡即為當代理服務器將自定義的域名解析到多個指定IP時,通過upstream來保證用戶可以通過代理服務器正常訪問各個IP。 編輯配置文件