Nginx负载均衡以及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地址:

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

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

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

Bakcup上

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

 

#!/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

 

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

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

在关闭一台nginx 服务后:

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

时间: 2024-09-17 03:46:56

Nginx负载均衡以及keepalived高可用实验的相关文章

Nginx反向代理,负载均衡,redis session共享,keepalived高可用

相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此处可搭建服务器集群. redis服务器一台,用于session的分离共享. nginx主服务器:192.168.50.133 nginx备服务器:192.168.50.135 tomcat项目服务器1:192.168.50.137 tomcat项目服务器2:192.168.50.139 redis服

CentOS6.4 LVS+keepalived高可用负载均衡服务配置

CentOS6.4 LVS+keepalived高可用负载均衡服务配置     一:测试环境信息 服务器DELL-R720 虚拟化 KVM 虚拟机4台: ipvs01,ipvs02,web01,web02 [root@KVM01~]# virsh list  Id    Name                           State ----------------------------------------------------  1     SN-web01         

[项目构建 十三]babasport Nginx负载均衡的详细配置及使用案例详解.

在这里再次说明下, 这个项目是从网上 找到的一套学习资料, 自己在 空闲时间学习了这些东西. 这里面的code当然会有很多不完善的地方, 但是确实也能学到很多新东西.感谢看过这一些列博文和评论的小伙伴, 我把自己所看到的学到的拿到这里来分享是想和大家一起学习进步, 想听听园友给出的意见, 也是对自己学习过程的一个总结. 最后我会将这套资料的所有内容共享出来, 如果有愿意学习的同学可以下载下来使用.PS: 我自认为 这些内容对于刚工作1-2年的同学来说真的很适用. 技术无止境, 我们仍需努力! 1

Keepalived 高可用

mark 一下,今日被同事问及keepalived的应用,和lvs(各自的功能有点混啦).标记一下: Keepalived 是一款高可用软件,运行在LVS之上,它的主要功能是实现真实机的故障隔离及负载均衡器间的失败切换(Failover).在TCP/IP协议中,它可以工作在3.4.5层. 在Layer 3的工作方式是:keepalived定期向服务器群中的服务器发送ICMP数据包.以服务器的ip地址是否有效作为服务器工作正常与否的标准.在Layer 4的工作方式是:以TCP端口的状态来决定服务器

Nginx负载均衡实战

Nginx是一款面向性能设计的HTTP服务器,相较于Apache.lighttpd具有占有内存少,稳定性高等优势.与旧版本(<=2.2)的Apache不同,nginx不采用每客户机一线程的设计模型,而是充分使用异步逻辑,削减了上下文调度开销,所以并发服务能力更强.整体采用模块化设计,有丰富的模块库和第三方模块库,配置灵活. 在Linux操作系统下,nginx使用epoll事件模型,得益于此,nginx在Linux操作系统下效率相当高.同时Nginx在OpenBSD或FreeBSD操作系统上采用类

nginx负载均衡

今天我们来学习下有关nginx的负载均衡配置.nginx的负载均衡是通过nginx的upstream模块和proxy_pass反向代理来实现的. 说明:有三台服务器,前端的A服务器使用nginx进行负载均衡配置.后端是两台配置的相同服务器,以访问a.ilanni.com这个域名为例.结构图,如下: A服务器对外(公网)开放80端口,B.C服务器就是两台配置相同的服务器.B服务器开放8080端口,C服务器开放8090端口.当客户端访问a.ilanni.com域名时,A服务器根据nginx的upst

解析nginx负载均衡

摘要:对于一个大型网站来说,负载均衡是永恒的话题.随着硬件技术的迅猛发展,越来越多的负载均衡硬件设备涌现出来,如F5 BIG-IP.Citrix NetScaler.Radware等等,虽然可以解决问题,但其高昂的价格却往往令人望而却步,因此负载均衡软件仍然是大部分公司的不二之选.nginx作为webserver的后起之秀,其优秀的反向代理功能和灵活的负载均衡策略受到了业界广泛的关注.本文将以工业生产为背景,从设计实现和具体应用等方面详细介绍nginx负载均衡策略. 关键字:nginx 负载均衡

Nginx负载均衡详细介绍_nginx

如果只有一台服务器时,这个服务器挂了,那么对于网站来说是个灾难.因此,这时候的负载均衡就会大显身手了,它会自动剔除挂掉的服务器. 下面简单的介绍下我使用Nginx做负载的体会 下载---安装Nginx这些不介绍了,前篇有介绍. windows和Linux下配置Nginx负载的写法一样,故不分开介绍. Nginx负载均衡一些基础知识: nginx 的 upstream目前支持 4 种方式的分配 1).轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除.

nginx负载均衡篇二、nginx配置

如果不知道在Linux下如何安装nginx请参考前一篇文章. nginx负载均衡的配置较apache要简单许多,这里用nginx做负载均衡将不再描述tomcat集群的配置,如果对tomcat集群配置有不懂的地方,请参考Apache反向代理结合Tomcat集群来实现负载均衡(三).tomcat集群文章进行配置.下边进入正题,开始配置nginx负载均衡. 先来看下nginx的完全配置: #user nobody; worker_processes 1; #error_log logs/error.l