Nginx负载均衡以及keepalived高可用实验

这篇具有很好参考价值的文章主要介绍了Nginx负载均衡以及keepalived高可用实验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、 Nginx负载均衡的标准和现象

二、什么是keepalived高可用

三、安装

四、配置

五、测试

六、 难点

七、问题及处理

八、总结


一、 Nginx负载均衡的标准和现象

Nginx负载均衡通常具有以下标准和现象:

  1. 负载均衡算法:Nginx可以使用不同的负载均衡算法选择服务器。默认情况下,它使用轮询算法,但也支持其它算法如最小化连接、IP hash等。

  2. 高可用性:Nginx支持upstream服务器组的健康检查,该检查可以根据特定规则定期执行,以确保所有服务器都可以继续提供服务。如果某个服务器出现故障,Nginx会自动将请求路由到其他可用服务器。

  3. 缓存:Nginx允许缓存静态内容,如图片、CSS和JavaScript文件等,以减轻服务器的负载。

  4. 反向代理:Nginx可以作为反向代理,将外部请求转发给内部服务器,从而实现负载均衡。这种架构可以有效提高Web应用程序的性能和可伸缩性。

  5. 集群:多个Nginx服务器可以组成一个集群,通过共享负载均衡组成一个高可用性、高性能的系统。

总之,Nginx负载均衡可以提高Web应用程序的响应能力、可用性和可伸缩性,从而满足大量并发请求并保证可靠性和稳定性。

二、什么是keepalived高可用

Keepalived是一个开源的高可用性软件,它通过实现VRRP协议,可以将多个服务器组成一个虚拟IP地址,从而实现负载均衡和故障转移的功能。在使用Keepalived高可用架构时,多个服务器会被设置成相同的配置文件,其中一个服务器将作为Master节点,其他节点则将作为Backup节点。在Master节点无法正常工作时,Backup节点会自动接管Master节点的工作,保证服务的可用性和稳定性。因此,Keepalived高可用架构可以有效地提高系统的可用性和可靠性,降低系统宕机的风险。

三、安装

Vip  10.1.122 

Keepalived-master  10.1.1.132

Keepalied-backup   10.1.1.133



Realserver_1      10.1.1.136

Realserver_2      10.1.1.137

四台机器上安装nginx,编译安装的话需要另外安装pcre包支持,安装在/usr/local/nginx

Keepalived-master 和backup 安装keepalived 和ipvsadm(lvs安装包)

! Configuration File for keepalived



global_defs {

#   notification_email {

#     len@firewall.loc

#     len@firewall.loc

#     len@firewall.loc

#   }

 #  notification_email_from Alexandre.Cassen@firewall.loc

  # smtp_server 192.168.200.1

   #smtp_connect_timeout 30

   router_id LVS_DEVEL_1

}

vrrp_sync_group LVS {

        group {

                VI_1

                }

}

vrrp_instance VI_1 {

    state MASTER

    interface eth1

    lvs_sync_daemon_interface eth1

    virtual_router_id 51

    priority 101

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

       10.1.1.222

    }

}



virtual_server 10.1.1.222 {

        delay_loop 6

        lb_algo rr

        lb_kind DR

        persistence_timeout 50

        protocol TCP



        real_server 10.1.1.136 80 {

        weight 1

        TCP_CHECK {

        connect_timeout 4

        nb_get retry 4

        delay_before_retry 4

        connect_port 80

        }

     }

        real_server 10.1.1.137 80 {

        weight 1

        TCP_CHECK {

        connect_timeout 4

            nb_get_retry 4

            delay_before_retry 4

            connect_prot 80

        }

    }

}



        #

        #location ~ /\.ht {

        #    deny  all;

        #}

    }





    # another virtual host using mix of IP-, name-, and port-based configuration

    #

    #server {

    #    listen       8000;

    #    listen       somename:8080;

    #    server_name  somename  alias  another.alias;



    #    location / {

    #        root   html;

    #        index  index.html index.htm;

    #    }

    #}





    # HTTPS server

    #

    #server {

    #    listen       443 ssl;

    #    server_name  localhost;



    #    ssl_certificate      cert.pem;

    #    ssl_certificate_key  cert.key;



    #    ssl_session_cache    shared:SSL:1m;

    #    ssl_session_timeout  5m;



    #    ssl_ciphers  HIGH:!aNULL:!MD5;

    #    ssl_prefer_server_ciphers  on;



    #    location / {

    #        root   html;

    #        index  index.html index.htm;

    #    }

    #}



}



Keepalived-backup: 配置文件



! Configuration File for keepalived



global_defs {

  # notification_email {

  #   len@firewall.loc

  #   len@firewall.loc

  #   len@firewall.loc

  # }

  # notification_email_from Alexandre.Cassen@firewall.loc

  # smtp_server 192.168.200.1

  # smtp_connect_timeout 30

   router_id LVS_DEVEL_2

}



vrrp_instance VI_1 {

    state BACKUP

    interface eth2

    virtual_router_id 51

    priority 99

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

       10.1.1.222

    }

}

virtual_server 10.1.1.222 80 {

    delay_loop 6

    lb_algo rr

    ##lb_kind NAT

    lb_kind DR

    persistence_timeout 50

    protocol TCP



    real_server 10.1.1.136 80 {

        weight 1

        TCP_CHECK {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

            connect_prot 80

        }

    }



    real_server 10.1.1.137 80 {

        weight 1

        TCP_CHECK {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

            connect_prot 80

       }

    }

}

安装完成后master和backup  /etc/init.d/keepalived start

四、配置

Ip addr 查看vip地址:

Nginx负载均衡以及keepalived高可用实验,架构,网络,大数据,数据库

此时master上的ip 10.1.1.222已经生成,backup上此时需等master keepalived停掉后会自动生成vip 10.1.1.222

Nginx负载均衡以及keepalived高可用实验,架构,网络,大数据,数据库

在停止master keepalived后vip,backup生成10.1.1.222:

Nginx负载均衡以及keepalived高可用实验,架构,网络,大数据,数据库

通过 ipvsadm来查看HA服务和realserver:

Nginx负载均衡以及keepalived高可用实验,架构,网络,大数据,数据库

Bakcup上

Nginx负载均衡以及keepalived高可用实验,架构,网络,大数据,数据库

在realserver的nginx配置文件上配置需要访问的内容,运行如下脚本开启转发功能:

查看realserver的ip,生成lo:0的虚拟网口来转发数据

Nginx负载均衡以及keepalived高可用实验,架构,网络,大数据,数据库

#!/bin/bash

VIP=10.1.1.222



source /etc/rc.d/init.d/functions



case "$1" in

start)

    echo "start LVS of real server"

    ifconfig lo:0 $SYN_VIP netmask 255.255.255.255 broadcast $VIP

    echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

       echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce

       echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

       echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

       sysctl -p >/dev/null 2>&1

       echo "RealServer Start OK"

    ;;

stop)

    echo "stop LVS of real server"

       ifconfig lo:0 down

       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore

       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce

       echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore

       echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce

       echo "RealServer Stoped"

       ;;

*)

    echo "USAGE: $0 {start|stop}"

    exit 1

esac

五、测试

以上配置完成后,进行测试:

Nginx负载均衡以及keepalived高可用实验,架构,网络,大数据,数据库

在关闭一台nginx 服务后:

Nginx负载均衡以及keepalived高可用实验,架构,网络,大数据,数据库

关闭一台keepalived服务后,丢一个包就会自动连接

Nginx负载均衡以及keepalived高可用实验,架构,网络,大数据,数据库

六、 难点

Nginx负载均衡和keepalived高可用实验都是比较复杂的操作,需要掌握一定的知识和技能。以下是可能遇到的难点:

  1. 配置文件的编写:需要掌握Nginx和keepalived的配置语言,理解负载均衡和高可用的原理,从而正确编写配置文件,确保系统的正常运行。

  2. 负载均衡策略的选择:在配置Nginx负载均衡时,需要根据实际需求选择合适的负载均衡策略,如轮询、IP hash、least connections等。

  3. 节点健康检查:为了实现高可用,需要定期对节点进行健康检查,发现异常节点及时剔除,避免影响系统稳定性。

  4. IP漂移:keepalived实现高可用的关键在于IP漂移,即在主备节点之间切换IP地址。这个过程需要保证数据的完整性和一致性,防止数据丢失和重复。

  5. 容错性:在实际应用中,系统中的任何一个组件出现问题都可能导致整个系统的崩溃。因此,需要设计一定的容错机制,如备份节点、应急启动等,保证系统的稳定性和可用性。

以上是Nginx负载均衡以及keepalived高可用实验可能遇到的难点,需要注意以上问题,加强实践操作,熟练掌握实验步骤和技能,才能保证实验结果的准确性和稳定性。

七、问题及处理

在使用Nginx负载均衡和Keepalived高可用方案时,可能会遇到以下问题:

  1. 负载均衡器无法正常工作:可能原因是配置文件有误或Nginx服务未启动。检查配置文件是否正确,检查服务状态并重新启动Nginx服务。

  2. 主从切换不及时:可能原因是Keepalived配置文件有误或者网络延迟导致VRRP协议通信失败。检查Keepalived配置文件是否正确,排查网络延迟问题。

  3. 服务无法访问:可能原因是后端服务器故障或者负载均衡算法选择有误。检查后端服务器是否正常,检查负载均衡算法是否适合当前情况。

  4. 健康检查失败:可能原因是健康检查URL设置不正确或后端服务器出现异常。检查健康检查URL是否正确,排查后端服务器异常情况。

对于以上问题的处理方法:

  1. 首先检查配置文件是否正确,检查服务状态并重新启动Nginx服务。

  2. 检查Keepalived配置文件是否正确,排查网络延迟问题。

  3. 检查后端服务器是否正常,检查负载均衡算法是否适合当前情况。

  4. 检查健康检查URL是否正确,排查后端服务器异常情况。

在实验过程中,应该对Nginx负载均衡和Keepalived高可用方案进行多次测试,确保系统的稳定性和可靠性。

八、总结

在进行Nginx负载均衡以及keepalived高可用实验时,我们需要先了解负载均衡和高可用的基本概念和原理。

负载均衡是指将访问请求分摊到多个服务器上,从而达到提高服务器性能和增加系统可用性的目的。常见的负载均衡策略有轮询、IP哈希、最小连接数等。

而高可用则是指系统能够在遇到故障或者错误时,依然能够保持正常运行。常见的高可用实现方式有冗余备份、故障转移、负载均衡等。

在进行实验时,我们需要搭建两台Nginx服务器,并进行如下操作:

  1. 安装Nginx服务,并配置负载均衡策略。
  2. 安装keepalived服务,并配置虚拟IP地址。
  3. 分别在两台Nginx服务器上启动Nginx和keepalived服务。
  4. 测试负载均衡和高可用性能。

通过以上步骤,我们可以实现Nginx负载均衡和keepalived高可用的功能。

在实验过程中,需要注意以下几点:

  1. 确保两台服务器之间的网络通畅,能够互相访问。
  2. 在配置keepalived服务时,需要注意不同版本之间的差异,以及各个参数的设置。
  3. 在测试负载均衡和高可用性能时,需要使用多个客户端并发进行访问,以获取更为准确的数据。

总体而言,Nginx负载均衡和keepalived高可用是企业级应用中常见的解决方案,对于提高系统性能和可用性方面有着重要的作用。文章来源地址https://www.toymoban.com/news/detail-647630.html

到了这里,关于Nginx负载均衡以及keepalived高可用实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • nginx+keepalived负载均衡和高可用配置

    nginx用来负载均衡,keepalived是用来实现VIP故障切换。 nginx+keepalived配置中,后端普通服务器不需要lvs实现负载均衡。 在主备节点上测试 配置nginx之前需要将keepalived停止 在keepalived的配置文件中配置vrrp_script进行实时监控。

    2024年02月12日
    浏览(54)
  • LVS+Keepalived架构(负载均衡高可用集群)

    普通的群集的部署是通过 一台调度器控制调配多台节点服务器 进行业务请求的处理,但是仅仅是一台调度器,就会存在极大的单点故障风险,当该调度器的链路或则调度器本身出现故障时,就会导致整个业务的无法正常进行  而高可用集群是由 一台主调度器和一台或多台备

    2024年02月12日
    浏览(58)
  • 基于nginx+keepalived的负载均衡、高可用web集群

    项目描述: 本项目旨在构建一个高性能、高可用的web集群,使用ansible批量部署项目环境,nginx实现七层负载均衡,NFS实现web服务器机器的数据同源,keepalived搭建双VIP实现高可用,Prometheus+grafana实现对LB负载均衡服务器以及NFS服务器的监控。 项目环境: CentOS 7.9、Nginx 1.25.2、

    2024年02月09日
    浏览(44)
  • Docker搭建Nginx+keepalived高可用负载均衡服务器

    一、背景 1.nginx高可用 在生产环境下,Nginx作为流量的入口,如果Nginx不能正常工作或服务器宕机,将导致整个微服务架构的不可用。所以负责负载均衡、反向代理的服务(Nginx)为了提高处理性能,高可用,也需要集群部署。本期咋们采用 keepalived 和 Nginx实现高可用。 2.Kee

    2024年04月22日
    浏览(51)
  • web集群学习:nginx+keepalived实现负载均衡高可用性

    目录 项目架构 一,环境介绍 二,项目部署 在Web服务器上配置Web测试页面 nginx负载均衡配置 配置Nginx_Master 通过vrrp_script实现对集群资源的监控(1通过killall命令探测服务运行状态) 通过vrrp_script实现对集群资源的监控(2、开发检测nginx存活的shell脚本) 三,项目测试 四,实

    2024年02月13日
    浏览(54)
  • nginx两台负载均衡服务器之间使用keepalived实现高可用

    单点故障:某个重要的功能只有一份,如果他出现问题,会导致全局不能使用 “高可用性”(High Availability,缩写为HA)用于描述系统或服务在面临故障、硬件或软件问题时能够继续正常运行的能力。高可用性的目标是最大程度地减少系统中断或停机时间,确保用户可以随时

    2024年02月09日
    浏览(52)
  • 虚拟机中使用Nginx + Keepalived 实现高可用 Web 负载均衡笔记

    物理操作系统:Windows10 虚拟机软件:VMWare Workstation 16 Pro 虚拟操作系统统:CentOS7 Nginx:1.24.0 Keepalived:2.2.8 在VMWare Worksattion中安装了2台CentOS7的虚拟机,桥接方式下IP地址分别为:192.168.0.35、192.168.0.36 VIP IP 主机名 Nginx端口 默认主从 192.168.0.100 192.168.0.35 wongoing01 88 MASTER 192.168

    2024年02月11日
    浏览(62)
  • 深入浅出 -- 系统架构之负载均衡Nginx实现高可用

       线上如果采用单个节点的方式部署 Nginx ,难免会出现天灾人祸,比如系统异常、程序宕机、服务器断电、机房爆炸、地球毁灭....哈哈哈,夸张了。但实际生产环境中确实存在隐患问题,由于 Nginx 作为整个系统的网关层接入外部流量,所以一旦 Nginx 宕机,最终就会导致整

    2024年04月15日
    浏览(51)
  • lvs DR模式+基于五台服务器部署keepalived + lvs DR模式架构(前端带路由)负载均衡的高可用集群

    lvs DR 模式+基于五台服务器部署keepalived + lvs DR模式架构(前端带路由)负载均衡的高可用集群 DR 模式一: 客户端:172.20.26.167 LVS服务器:172.20.26.198 后端服务器:172.20.26.218 后端服务器:172.20.26.210 两台后端服务器 yum install nginx tcpdump -y echo \\\"this is 26.218 page\\\" /usr/share/nginx/html/index

    2024年02月19日
    浏览(52)
  • LVS+KeepAlived高可用负载均衡集群

    高可用集群只需要在调度器上多进行一台或两台(服务器本身的价格比较昂贵,一般备用的服务器的数量会和当前业务创造的价值对等)的设置,就可避免因调度器瘫痪业务中断的风险,所以实现了真正的高可用的效果。 1.普通群集 普通的群集的部署是通过一台度器控制调配

    2024年02月09日
    浏览(81)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包