四層負載均衡,七層負載均衡


1,簡介四層負載均衡 七層負載均衡

四層負載均衡,在網絡模型中的傳輸層中,基於主要是基於tcp協議報文實現負載均衡(比如LVS、haproxy就是四層負載均衡器),使用改寫報文的源地址和目的地址。

nginx 1.9 之后也可以通過配置實現四層負載均衡。四層負載均衡支持所有的負載均衡功能比如數據庫,web 服務器等。

七層負載均衡,在網絡模型中應用層中,基於URL或者HTTP協議實現負載均衡,Web服務器。nginx 是七層負載均衡器。

2,基於nginx 1.9 搭建四層負載均衡

1,安裝一些包

1.安裝gcc gcc-c++(如新環境,未安裝請先安裝)
$ yum install -y gcc gcc-c++
2.安裝wget
$ yum -y install wget

2.安裝PCRE庫
$ cd /usr/local/
$ wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.33/pcre-8.33.tar.gz
$ tar -zxvf pcre-8.33.tar.gz
$ cd pcre-8.33
$ ./configure
$ make && make install
如果報錯:

在 linux 中執行 wget 命令提示 -bash: wget: command not found 解決方法
解決辦法 yum -y install wget


3.安裝SSL庫
$ cd /usr/local/
$ wget http://www.openssl.org/source/openssl-1.0.1j.tar.gz
$ tar -zxvf openssl-1.0.1j.tar.gz
$ cd openssl-1.0.1j
$ ./config
$ make && make install

4.安裝zlib庫存

$ cd /usr/local/
$ wget http://zlib.net/zlib-1.2.11.tar.gz
$ tar -zxvf zlib-1.2.11.tar.gz
$ cd zlib-1.2.11
$ ./configure
$ make && make install

5.安裝patch

  yum -y install patch 安裝即可

 

2,安裝Nginx

wget http://nginx.org/download/nginx-1.9.10.tar.gz

 安裝nginx_tcp_proxy_module 插件

wget https://github.com/yaoweibin/nginx_tcp_proxy_module/tarball/master

解壓

tar -zxvf master,解壓之后可以看到一個yaoweibin-nginx_tcp_proxy_module-b8a3028
tar -zxvf nginx-1.9.10.tar.gz

cd nginx-1.9.10,下載tcp.patch最新補丁

patch -p1 < ../yaoweibin-nginx_tcp_proxy_module-b8a3028/tcp.patch

如果報錯
-bash: patch: 未找到命令 執行 yum -y install patch 安裝即可。

編譯Nginx

./configure --add-module=../yaoweibin-nginx_tcp_proxy_module-b8a3028

make && make install
如果報錯

In file included from ../nginx_tcp_proxy_module-master/ngx_tcp.h:32,
from ../nginx_tcp_proxy_module-master/ngx_tcp.c:5:
../nginx_tcp_proxy_module-master/ngx_tcp_upstream.h:144: error: expected specifier-qualifier-list before 'ngx_resolver_addr_t'
make[1]: *** [objs/addon/nginx_tcp_proxy_module-master/ngx_tcp.o] Error 1
make[1]: Leaving directory `/opt/apps_install/nginx-1.9.9'
make: *** [build] Error 2

cd /usr/local/yaoweibin-nginx_tcp_proxy_module-b8a3028 找到ngx_tcp_upstream.h

修改第三方模塊包里的頭文件,ngx_tcp_upstream.h 144 行將ngx_resolver_addr_t 改為 ngx_addr_t

3,配置nginx.conf,並且啟動

tcp {

   ### 定義多個上游服務器
   upstream  aiyuesheng{
      ### 定義TCP模塊上游服務器
      server 192.168.178.1:8001;
      server 192.168.178.1:8002;
   }
    server {
        listen       9999;
        server_name  192.168.178.110;
        ### 反向代理upstream
        proxy_pass aiyuesheng;
    }

}

4,在tcp 測試工具里面添加客戶端 和 服務器

服務器是本地的物理機ip 地址,兩個服務

客戶端是虛擬機配置者四層負載均衡的linux 服務

客戶端主動連接之后,因為nginx 輪詢機制,會連接其中一台服務器,斷開連接之后,再次連接,會連接另一台。

因為是TCP 四層負載均衡使用的是長連接,只要客戶端和服務器保持連接,就不會輪詢到下一台機器。

 

這樣,四層負載均衡就配置OK 了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM