zoukankan      html  css  js  c++  java
  • keepalived+lvs+nginx高可用

    环境说明:

    IP地址 部署应用
    192.168.10.100 VIP0
    192.168.10.101 VIP1
    192.168.10.17 keepalived+lvs
    192.168.10.16 keepalived+lvs
    192.168.10.15 nginx
    192.168.10.14 nginx

    keepalived+lvs机器上配置

    #1.安装keepalived
    
    yum install keepalived –y
    
    #2.配置keepalived
    
    global_defs {
    	router_id  LVS
    }
    vrrp_instance LVS_1 {
        state MASTER	#备改为 BACKUP
        interface ens33
        virtual_router_id 100
        priority 100	#备改为 90
        advert_int 1
        nopreempt
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.10.100
            192.168.10.101
        }
    }
    
    virtual_server 192.168.10.100 80 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        persistence_timeout 120
        protocol TCP
        real_server 192.168.10.15 80 {
            TCP_CHECK {
                weight 1
                connect_timeout 10
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
            }
        }
        real_server 192.168.10.10 80 {
            TCP_CHECK {
                weight 1
                connect_timeout 10
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
            }
        }
    }
    
    virtual_server 192.168.10.101 81 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        persistence_timeout 0
        protocol TCP
        real_server 192.168.10.15 81 {
            TCP_CHECK {
                weight 1
                connect_timeout 10
                nb_get_retry 3
                delay_before_retry 3
                connect_port 81
            }
        }
        real_server 192.168.10.10 81 {
            TCP_CHECK {
                weight 1
                connect_timeout 10
                nb_get_retry 3
                delay_before_retry 3
                connect_port 81
            }
        }
    }
    
    #3.检查是否支持安装lvs
    find /lib/modules/$(uname -r)/ -iname "**.ko*" | cut -d/ -f5-
    
    yum install ipvsadm –y	#yum安装lvs
    
    #4.开启转发功能
    echo 1 > /proc/sys/net/ipv4/ip_forward
    
    sysctl -p	# 重新载入sysctl变量
    

    nginx机器配置

    #1.yum安装nginx或者编译安装
    
    yum install nginx -y
    
    service nginx start	#启动nginx
    
    #2.修改nginx.conf,配置81的端口
    vim /etc/nginx/nginx.conf
    
    echo '192.168.10.15:80' > /usr/share/nginx/html/index.html	#设置web的标志内容
    
    #3.lvs脚本
    
    #!/bin/bash
    # Script to start LVS DR real server. 
    # chkconfig: - 90 10 
    # description: LVS DR real server
    
    VIP0=192.168.10.100
    VIP1=192.168.10.101
    
    . /etc/rc.d/init.d/functions
    
    case "$1" in
    start)
    	ifconfig lo:0 $VIP0 broadcast $VIP0 netmask 255.255.255.255 up
    	route add -host $VIP0 dev lo:0
    
    	ifconfig lo:1 $VIP1 broadcast $VIP1 netmask 255.255.255.255 up
    	route add -host $VIP1 dev lo:1
    
    	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)
    	ifconfig lo:0 down
    	route del $VIP0 > /dev/null 2>&1
    	ifconfig lo:1 down
    	route del $VIP1 > /dev/null 2>&1
    	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 "$0: Usage:$0 {start|stop}"
    	exit 1
    ;;
    esac
    
    #4.添加开机自启动
    hmod +x /etc/init.d/lvs-rs
    chkconfig --add lvs-rs
    chkconfig lvs-rs on
    /etc/init.d/lvs-rs start
    

    验证

    访问VIP的网址,看是否每次访问的站点内容都是不同的。windows中的浏览器有缓存功能,如果站点内容有时候是相同的,那么不一定是自己配错了,可能是缓存的原因,避免的办法就是使用Linux的curl命令去访问站点的内容

    ipvsadm -ln		#查看连接数
    
  • 相关阅读:
    Big-data:Linux基础(04)--快捷键
    Big-data:Linux基础(03)
    Big-data:Linux基础(02)
    [mysql]删除和修改
    git使用两个异常处理
    jmeter函数使用以及json格式的后置处理器
    jmeter遇到中文不可见
    jmeter参数化
    GIT简易使用
    mysql基本语句(更新中)
  • 原文地址:https://www.cnblogs.com/fan-gx/p/11190227.html
Copyright © 2011-2022 走看看