利用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.178linux.com/79335

赞 (1)
王子豪王子豪
上一篇 2017-07-03 12:30
下一篇 2017-07-03 15:42

相关推荐

  • Linux文件与目录管理之权限与命令之间的关系

    Linux文件与目录管理之权限与命令之间的关系 我们知道权限对于用户账户来说是非常重要的,因为它可以限制用户能不能读取/新建/删除/修改文件或目录。在这我们就来说明下什么命令在什么样的权限下才能够运行。         让用户能进入某目录成为“可工作目录”的基本权限是什么     &nbs…

    Linux干货 2017-04-24
  • Linux之bash shell脚本编程入门篇(二)以及文件查找和压缩的使用

    bash shell脚本编程入门篇(二) read命令的使用 作用:     使用read来把输入值分配给一个或多个shell变量:         -p指定要显示的提示      &nbs…

    Linux干货 2016-08-18
  • 寻求别人帮助screen命令

    寻求别人帮助screen命令

    2017-11-20
  • ip子网划分

    ip子网划分 人们为了通信方便,给每台计算机分配了一个类似我们电话号码一样的标识地址。IP就好比一个人的指纹一样,在INTERNET中是独一无二的(公网中)。我们可以通过ip查询到使用该ip的主机。 现在的IP分为ipv4和ipv6。前者是32位二进制组成,为了防止IP不够用由此研发出后者ipv6,ipv6是由128位二进制组成。ipv6中包含ip的数量相当…

    Linux干货 2017-07-01
  • gawk

    简介     AWK是一种优良的文本处理工具。它不仅是 Linux 中也是任何环境中现有的功能最强大的数据处理引擎之一。AWK 提供了极其强大的功能:可以进行样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语言所应具有的几乎所有精美特性。实际上 AWK 的确拥有自…

    Linux干货 2016-03-25
  • Linux简要发展史

    目录 Linux简述 Linux之父 Linux标志 企鹅的来源 Tux的来源 历史 Unix GNU BSD Minix Linux 主要特性 Linux内核版本 Linux发行版 Linux简述 ·         Linux是一套自由加开放源代码的类Unix操作系统,诞生于…

    Linux干货 2016-10-18