• 四层负载均衡,七层负载均衡


    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 了

  • 相关阅读:
    JPEG图像压缩算法流程详解
    JPEG标准推荐的亮度、色度DC、AC Huffman编码表
    17软工- 第0次个人作业
    CNN炼丹瞎记录 mobilenet & se-resnet
    huggingface Bert的encode方法
    Failed to execute goal org.scala-tools:maven-scala-plugin:2.15.2:compile (compile) on project databus: wrap: org.apache.commons.exec.ExecuteException: Process exited with an error: 1(Exit value: 1)
    QT5实现消灭星星源码
    Hibernate介绍与简单使用示例代码
    Redis数据库介绍
    Failed to convert property value of type 'java.util.LinkedHashMap' to required type 'com.sun.javafx.collections.MappingChange$Map' for property
  • 原文地址:https://www.cnblogs.com/pickKnow/p/11231849.html
Copyright © 2020-2023  润新知