利用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
下一篇 2017-07-03

相关推荐

  • 20161028第9天作业

    20161028第9天作业 1、编写脚本/root/bin/hostping.sh,接受一个主机的IPv4地址做为参数,测试是否可连通。如果能ping通,则提示用户“该IP地址可访问”;如果不可ping通,则提示用户“该IP地址不可访问” 2、编写脚本/root/bin/checkdisk.sh,检查磁盘分区空间和inode使用率率,如果超过80%,就发广播…

    Linux干货 2016-10-30
  • LVM组件详解&创建实验流程

       前言:根据前面的学习我们知道,一个磁盘一旦分完区并且格式化后,其空间大小是没有办法进行调整了。因此推出了LVM(Logical Volume Manager)逻辑卷管理机制,LVM重点在于可以弹性的调整文件系统的容量!并非在于性能和数据保全方面,需要文件的读写性能或者数据的可靠性,需要用到RAID。而LVM可以整合多个物理…

    Linux干货 2016-08-30
  • vsftpd

    文件服务: 安装开启服务前先关闭selinux,清空iptables策略。避免不必要的麻烦,服务开启后,配置一切正常有需要再根据情况开启。 ftp:应用层,C/S,跨主机的文件共享服务;file transfer protocol nfs,cifs:文件系统接口,网络文件系统;     nfs:network&nbsp…

    Linux干货 2016-11-01
  • 第一周 计算机/Linux基础入门

    1、描述计算机组成及其功能 计算机组成主要分为五个部分:控制器、运算器、存储器、输入设备、输出设备 ENIARC: CPU:运算器、控制器、寄存器、缓存 存储器:内存,RAM(Random Access Memory)         Input:下指令,提供数据等 Output:输出数据加工的结果         &…

    2017-12-02
  • Linux帮助文件的使用、history变量的使用和FHS

    怎样利用帮助文件来查询想要了解的信息? 这里以通过查找帮助文件来修改登陆信息为例子, 登陆的时候,我们可以看到CentOS的的版本和内核信息, 当我们查看该相关文件的时候,会发现,里面的文档和显示的不一致,由此可以了解到,该文档是调用某些参数来实现显示CentOS的版本和内核信息。 这个时候,我们该怎样去查看issue文档的相关信息? 首先我们可以查看一下通…

    Linux干货 2016-08-04
  • 【招聘】北京/互联网/运维工程师/7-15K/双休,五险一金

    岗位职责:   1、负责服务器的规划、调试优化、日常监控、故障处理、数据备份、日志分析等工作;   2、参与运维流程制定,确保任何突发情况都能高效响应;  3、负责服务器部署,对服务器构架和网络进行优化和改进;  4、负责运维相关数据的收集、分析和总结;  5、负责技术运维相关的文档、手册…

    Linux干货 2016-04-05