惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
Recent Announcements
Recent Announcements
D
Docker
V
V2EX
阮一峰的网络日志
阮一峰的网络日志
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
The GitHub Blog
The GitHub Blog
U
Unit 42
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
月光博客
月光博客
腾讯CDC
B
Blog
博客园_首页
罗磊的独立博客
D
DataBreaches.Net
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
MongoDB | Blog
MongoDB | Blog
GbyAI
GbyAI
Stack Overflow Blog
Stack Overflow Blog
M
MIT News - Artificial intelligence

mephisto.cc

修复rime-ice无法弹出候选框的问题 开机滚动字体显示优化 个人网站安全防护 树莓派上部署Vaultwarden 使用goaccess实时分析Caddy日志 个人网站监控 Hugo全站AVIF记 Linux下尝试使用Godot开发小游戏 Arch linux dae 透明代理 Airflow接管galler-dl下载任务 如何使用gallery-dl批量下载图像 Arch核显下如何愉快玩Dota2和CS2 Arch/labwc 环境网络相关设置 Rime添加dota2词库 Arch 重装记录 Supertuxkart iOS版终于发布了 打造自己的流媒体音乐服务 剪切板管理工具clipcat推荐 MangoHud性能监控 微信小程序开发记 Rofi试用 解决Arch下VSCode无法输入中文的问题 独立窗口管理器下无法录屏问题处理 上海市二手房成交数据监控 OpenLDAP监控 Arch linux如何顺畅连接蓝牙设备 使用Git和Ansible管理配置文件 Arch Linux SSL VPN 客户端配置 简单获取celery任务实时结果 Arch linux下iNode客户端的安装和使用方法
lvs端部署
2022-05-25 · via mephisto.cc

1. ipvsadm

yum install ipvsadm

2. keepalived

yum install keepalived

3. vim /etc/keepalived/keepalived.conf, 测试示例如下

    ! Configuration File for keepalived

global_defs {
   notification_email {
     haha@test.com
   }
   router_id LVS_M
}

vrrp_instance VI_1 {
    state MASTER
    interface em1
    virtual_router_id 99
    priority 100
    advert_int 1
    smtp_alert
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        your_vip_1 
        your_vip_2
        your_vip_3
    }
}

virtual_server your_vip_1 80{
    delay_loop 6
    lb_algo wlc
    lb_kind DR
    protocol TCP

    real_server your_rs_1 80 {
        weight 1
        MISC_CHECK {
            misc_path "/opt/adminsh/check-realserver-health.sh"
            misc_timeout 5
        }
    }

    real_server your_rs_2 80 {
        weight 1
        MISC_CHECK {
            misc_path "/opt/adminsh/check-realserver-health.sh"
            misc_timeout 5
        }
    }

    real_server your_rs_3 80 {
        weight 1
        MISC_CHECK {
            misc_path "/opt/adminsh/check-realserver-health.sh"
            misc_timeout 5
        }
    }
}

virtual_server your_vip_2 80{
    delay_loop 6
    lb_algo wlc
    lb_kind DR
    protocol TCP


    real_server your_rs_1 80 {
        weight 1
        MISC_CHECK {
            misc_path "/opt/adminsh/check-realserver-health.sh"
            misc_timeout 5
        }
    }

    real_server your_rs_2 80 {
        weight 1
        MISC_CHECK {
            misc_path "/opt/adminsh/check-realserver-health.sh"
            misc_timeout 5
        }
    }

    real_server your_rs_3 80 {
        weight 1
        MISC_CHECK {
            misc_path "/opt/adminsh/check-realserver-health.sh"
            misc_timeout 5
        }
    }

}

virtual_server  your_vip_3 80{
    delay_loop 6
    lb_algo wlc
    lb_kind DR
    protocol TCP


    real_server your_rs_1 80 {
        weight 1
        MISC_CHECK {
            misc_path "/opt/adminsh/check-realserver-health.sh"
            misc_timeout 5
        }
    }

    real_server your_rs_2 80 {
        weight 1
        MISC_CHECK {
            misc_path "/opt/adminsh/check-realserver-health.sh"
            misc_timeout 5
        }
    }

    real_server your_rs_3 80 {
        weight 1
        MISC_CHECK {
            misc_path "/opt/adminsh/check-realserver-health.sh"
            misc_timeout 5
        }
    }

}

#https

virtual_server your_vip_1 443{
    delay_loop 6
    lb_algo wlc
    lb_kind DR
    protocol TCP

    real_server your_rs1 443 {
        weight 1
        MISC_CHECK {
            misc_path "/opt/adminsh/check-realserver-health.sh"
            misc_timeout 5
        }
    }

    real_server your_rs_2 443 {
        weight 1
        MISC_CHECK {
            misc_path "/opt/adminsh/check-realserver-health.sh"
            misc_timeout 5
        }
    }

    real_server your_rs_3 443 {
        weight 1
        MISC_CHECK {
            misc_path "/opt/adminsh/check-realserver-health.sh"
            misc_timeout 5
        }
    }
}

virtual_server your_vip_2 443{
    delay_loop 6
    lb_algo wlc
    lb_kind DR
    protocol TCP


    real_server your_rs_1 443 {
        weight 1
        MISC_CHECK {
            misc_path "/opt/adminsh/check-realserver-health.sh"
            misc_timeout 5
        }
    }

    real_server your_rs_2 443 {
        weight 1
        MISC_CHECK {
            misc_path "/opt/adminsh/check-realserver-health.sh"
            misc_timeout 5
        }
    }

    real_server your_rs_3 443 {
        weight 1
        MISC_CHECK {
            misc_path "/opt/adminsh/check-realserver-health.sh"
            misc_timeout 5
        }
    }

}

virtual_server your_vip_3 443{
    delay_loop 6
    lb_algo wlc
    lb_kind DR
    protocol TCP


    real_server your_rs_1 443 {
        weight 1
        MISC_CHECK {
            misc_path "/opt/adminsh/check-realserver-health.sh"
            misc_timeout 5
        }
    }

    real_server your_rs_2 443 {
        weight 1
        MISC_CHECK {
            misc_path "/opt/adminsh/check-realserver-health.sh"
            misc_timeout 5
        }
    }

    real_server your_rs_3 443 {
        weight 1
        MISC_CHECK {
            misc_path "/opt/adminsh/check-realserver-health.sh"
            misc_timeout 5
        }
    }

}

4. slave 端部署同master一样, 只需要调整router_id、state、prority参数

  /sbin/iptables -A INPUT -p vrrp -j ACCEPT  添加防火墙规则

realserver端部署:

1. vim /etc/init.d/realserver

#!/bin/sh
### BEGIN INIT INFO
# Provides: lvs_realserver
# Default-Start:  3 4 5
# Default-Stop: 0 1 6
# Short-Description: LVS real_server service scripts
# Description: LVS real_server start and stop controller
### END INIT INFO
#  Copyright 2013 lxcong
#
#  chkconfig: - 20 80
#
#  Author:  xxxx@xxxx

#有多个虚拟IP,以空格分隔
SNS_VIP="1.1.1.1"
. /etc/rc.d/init.d/functions
if [[ -z "$SNS_VIP"  ]];then
    echo Please set vips in $0 with SNS_VIP!
fi

start(){
num=0
for loop in $SNS_VIP
do
    /sbin/ifconfig lo:$num $loop netmask 255.255.255.255 broadcast $loop
    /sbin/route add -host $loop dev lo:$num
    ((num++))
done
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 -e -p >/dev/null 2>&1
} 

stop(){
num=0
for loop in $SNS_VIP
do
    /sbin/ifconfig lo:$num down
    /sbin/route del -host $loop >/dev/null 2>&1
    ((num++))
done
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
sysctl -e -p >/dev/null 2>&1
} 

case "$1" in
    start)
        start
        echo "RealServer Start OK"
        ;;
    stop)
        stop
        echo "RealServer Stoped"
        ;;
    restart)
        stop
        start
        ;;
    *)
         echo "Usage: $0 {start|stop|restart}"
         exit 1
esac
exit 0

2. 启动文件

chmod +x /etc/init.d/realserver

3. 启动

service realserver start

4. 配置开机启动

chkconfig realserver on

5. realserver 开启服务,进行各项测试