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模板网!

原文地址:https://blog.csdn.net/LYX_WIN/article/details/132075835

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

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

相关文章

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包