利用nginx實現基于傳輸層的四層負載均衡

nginx利用ngx_stream_core_module實現四層的負載均衡服務。作為四層負載均衡nginx和lvs的區別在于:

  • lvs工作于內核層,相對來說效率更高,性能更強;

  • nginx工作于用戶空間;

  • lvs不會受到套接字數量的限制;

  • nginx作為四層負載均衡也需要監聽套接字來和客戶端,后臺服務器進行連接,會受到套接字數量限制,不過這個問題可以通過keepalive長連接來避免;

一、實驗環境

此次實驗基于三臺服務器實現,分別負載httpd服務、ssh服務和mysql服務:

  • nginx四層負載均衡器:192.168.11.100

  • 內網真實服務器RS-1:192.168.11.201;

  • 內網真實服務器RS-2:192.168.11.202;

二、實驗配置步驟:

內網服務器配置:

  1. 內網兩臺服務器分別安裝nginx、和mysql服務,并開啟相關服務

    yum install -y nginx mariadb-server

nginx負載均衡器配置:

  1. 修改/etc/nginx/nginx.conf配置文件:

    #定義http、mysql和ssh的負載均衡集群并調用,默認算法為rr(輪詢)# stream {         upstream websrvs {                 server 192.168.11.201:80;                 server 192.168.11.202:80;         }          upstream mysqlsrvs {                 server 192.168.11.201:3306;                 server 192.168.11.202:3306;         }          upstream sshsrvs {                 server 192.168.11.201:22;                 server 192.168.11.202:22;         }         server {                 listen 80;                 proxy_pass websrvs;         }         server {                 listen 10022;                 proxy_pass sshsrvs;         } }
  2. 測試是否可行:

    1. 測試http:

      利用nginx實現基于傳輸層的四層負載均衡

    2. 測試ssh:

      利用nginx實現基于傳輸層的四層負載均衡

      可以看到兩次登錄的主機名完全不一樣

    3. 測試mysql:

      在一個數據庫建立新庫,名字為testdb,另一個不建立,然后用for循環查詢庫即可看到結果:

      利用nginx實現基于傳輸層的四層負載均衡

      可以看到每次呈現的數據庫都不一樣,所以說明是通過輪詢方法連接到兩臺不同的數據庫了。

原創文章,作者:王子豪,如若轉載,請注明出處:http://www.www58058.com/79335

(1)
王子豪王子豪
上一篇 2017-07-03
下一篇 2017-07-03

相關推薦

  • linux網絡配置

    一、 網絡基本配置:  真不敢想象沒有網絡的一天應該怎樣度過,但是有了網絡就行了?原來剛有了網絡時由于沒有統一的標準,各大硬件廠商各自為政,都在搞網絡,但是都只是同一廠商的設備可以進行通訊,就和不同的國家的人交流使用了不同的語言一樣,難以將所有的網絡連接起來,之后Internet有了統一的標準,大家都遵循它的標準,后來計算機才能進行網絡通訊,同樣將…

    Linux干貨 2016-09-13
  • LVS DR模型演示

    LVS DR模型演示 環境介紹: Directory     DIP eth0    10.1.249.158     VIP eth0:0  10.1.249.111 rs1  &nbsp…

    2016-10-30
  • 馬哥教育網絡班21期第6周課程練習

    一、vim編輯器的使用 二、練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; [root@www ~]# cp /etc/rc.d/rc.sysinit /tmp [root@www ~]# l…

    Linux干貨 2016-08-15
  • linux中nmcli命令使用及網絡配置

      Red Hat Enterprise Linux 7 與 CentOS 7 中默認的網絡服務由 NetworkManager 提供,這是動態控制及配置網絡的守護進程,它用于保持當前網絡設備及連接處于工作狀態,同時也支持傳統的 ifcfg 類型的配置文件。  NetworkManager 可以用于以下類型的連接:Ethernet,VLA…

    Linux干貨 2016-09-10
  • 高級文件系統管理1

    本部分內容主要講述了高級文件系統的管理,包括設定文件系統配額,設定和管理軟RAID設備,配置邏輯卷,設定LVM快照和btrfs文件系統。其中文件系統配額和軟RAID在企業中使用的頻率并不很高,作為熟練即可,而邏輯卷的創建和LVM快照是非常重要的內容,必須精通并完全理解其原理。至于btrfs文件系統是新興的一種技術,作為了解即可。 一、知識整理 1、文件系統配…

    Linux干貨 2016-08-29
  • N24_星空學習宣言

    學習是一種投資,既然投資了就不能虧損,努力學習,做一個學習界的巴菲特!

    Linux干貨 2016-10-24
欧美性久久久久