admin管理员组

文章数量:1027651

代理服务器

我们上一章介绍了Web服务器,其中以Nginx为主,本章我们来讲解几个代理软件:Squid,Haproxy,LVS,FRP(内网穿透)。

前面我们介绍了几种代理软件,虽然都能实现负载均衡,而且LVS本身还不具备健康检查的能力(也就是后端挂了他还会往里面转发请求)。但是他们自己并不是高可用的,也就是如果这个部署代理软件的机器宕机以后,服务也就不可以用。

我们在前面Kubernetes里面已经使用Keepalived来提供VIP的功能,这个对于有健康检查的软件比如HAPorxy和Nginx可以参考前面的文章来实现高可用的。也就是下面代码部分前半截。

本小节我们讲使用LVS+keepalived来实现负载均衡+高可用。在keepalive这个软件里面实际有多种模式,这里我们就以简单的主备模式来讲解,后面单独出一个小节来介绍这个模式。

2个服务器都已经安装ipvs,加载ip_vs内核模块,和开启转发功能。

master

代码语言:javascript代码运行次数:0运行复制
vrrp_instance VI_1 {
    state MASTER            # 主节点设置为 MASTER
    interface eth0          # 绑定网卡(根据实际网卡名修改)
    virtual_router_id 51    # 虚拟路由 ID(同一集群需一致)
    priority 100            # 优先级(主节点高于备节点)
    advert_int 1            # VRRP 心跳间隔(秒)

    authentication {        # 认证配置
        auth_type PASS
        auth_pass 12345678  # 密码(主备需一致)
    }

    virtual_ipaddress {     # 定义 VIP
        192.168.31.134/24
    }
}

#如果只定义上面部分,则keepalived 只会配置这个vip到网卡上 
#下面的配置则是他可以操作ipvs命令,进行规则的增加和删除 

virtual_server 192.168.31.134 80 {  # 定义虚拟服务(VIP 和端口)
    delay_loop 6           # 健康检查间隔(秒)
    lb_algo rr             # 调度算法(轮询)
    lb_kind DR             # LVS 模式(DR)
    protocol TCP           # 协议类型

    # 定义 Real Server
    real_server 192.168.31.131 80 {
        weight 1           # 权重
        TCP_CHECK {         # 健康检查方式(TCP 端口检查)
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.31.132 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
}

slave

代码语言:javascript代码运行次数:0运行复制
global_defs {
    router_id LVS_BACKUP  # 标识备用节点(需与主节点不同)
}

# 定义 VRRP 实例(用于 VIP 故障切换)
vrrp_instance VI_1 {
    state BACKUP           # 角色为备节点
    interface eth0         # 绑定网卡(根据实际网卡名修改)
    virtual_router_id 51   # 虚拟路由 ID(必须与主节点一致)
    priority 50            # 优先级(低于主节点)
    advert_int 1           # 心跳间隔(秒)

    # 认证配置(必须与主节点一致)
    authentication {
        auth_type PASS
        auth_pass 12345678
    }

    # 定义虚拟 IP(VIP)
    virtual_ipaddress {
        192.168.31.134/24
    }
}

# 定义 LVS 虚拟服务(需与主节点完全一致)
virtual_server 192.168.31.134 80 {
    delay_loop 6          # 健康检查间隔(秒)
    lb_algo rr            # 调度算法(轮询)
    lb_kind DR            # LVS 模式(DR)
    protocol TCP          # 协议类型

    # 真实服务器 1 配置
    real_server 192.168.31.131 80 {
        weight 1          # 权重
        TCP_CHECK {       # 健康检查方式(TCP 端口检查)
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }

    # 真实服务器 2 配置
    real_server 192.168.31.132 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
}

这样配置以后,就不需要手工配置VIP,而是keepalived会根据权重自动配置VIP,当然会出现下面几种情况。

1.在都未启动keepalived情况下,谁先启动谁占用vip。

2.如果slave先启动,master后启动,master会抢占vip(包括宕机切换)。

3.如果master先启动,slave后启动,则master会一直持有vip,直到master故障。

这样配置以后,他还会检查后端,如果发现后端异常,则会摘除异常后端。这样VIP本身是高可用的,后端异常也能及时屏蔽。从架构上保证了高可用。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-04-30,如有侵权请联系 cloudcommunity@tencent 删除代理服务器后端配置ampkeepalived

代理服务器

我们上一章介绍了Web服务器,其中以Nginx为主,本章我们来讲解几个代理软件:Squid,Haproxy,LVS,FRP(内网穿透)。

前面我们介绍了几种代理软件,虽然都能实现负载均衡,而且LVS本身还不具备健康检查的能力(也就是后端挂了他还会往里面转发请求)。但是他们自己并不是高可用的,也就是如果这个部署代理软件的机器宕机以后,服务也就不可以用。

我们在前面Kubernetes里面已经使用Keepalived来提供VIP的功能,这个对于有健康检查的软件比如HAPorxy和Nginx可以参考前面的文章来实现高可用的。也就是下面代码部分前半截。

本小节我们讲使用LVS+keepalived来实现负载均衡+高可用。在keepalive这个软件里面实际有多种模式,这里我们就以简单的主备模式来讲解,后面单独出一个小节来介绍这个模式。

2个服务器都已经安装ipvs,加载ip_vs内核模块,和开启转发功能。

master

代码语言:javascript代码运行次数:0运行复制
vrrp_instance VI_1 {
    state MASTER            # 主节点设置为 MASTER
    interface eth0          # 绑定网卡(根据实际网卡名修改)
    virtual_router_id 51    # 虚拟路由 ID(同一集群需一致)
    priority 100            # 优先级(主节点高于备节点)
    advert_int 1            # VRRP 心跳间隔(秒)

    authentication {        # 认证配置
        auth_type PASS
        auth_pass 12345678  # 密码(主备需一致)
    }

    virtual_ipaddress {     # 定义 VIP
        192.168.31.134/24
    }
}

#如果只定义上面部分,则keepalived 只会配置这个vip到网卡上 
#下面的配置则是他可以操作ipvs命令,进行规则的增加和删除 

virtual_server 192.168.31.134 80 {  # 定义虚拟服务(VIP 和端口)
    delay_loop 6           # 健康检查间隔(秒)
    lb_algo rr             # 调度算法(轮询)
    lb_kind DR             # LVS 模式(DR)
    protocol TCP           # 协议类型

    # 定义 Real Server
    real_server 192.168.31.131 80 {
        weight 1           # 权重
        TCP_CHECK {         # 健康检查方式(TCP 端口检查)
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.31.132 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
}

slave

代码语言:javascript代码运行次数:0运行复制
global_defs {
    router_id LVS_BACKUP  # 标识备用节点(需与主节点不同)
}

# 定义 VRRP 实例(用于 VIP 故障切换)
vrrp_instance VI_1 {
    state BACKUP           # 角色为备节点
    interface eth0         # 绑定网卡(根据实际网卡名修改)
    virtual_router_id 51   # 虚拟路由 ID(必须与主节点一致)
    priority 50            # 优先级(低于主节点)
    advert_int 1           # 心跳间隔(秒)

    # 认证配置(必须与主节点一致)
    authentication {
        auth_type PASS
        auth_pass 12345678
    }

    # 定义虚拟 IP(VIP)
    virtual_ipaddress {
        192.168.31.134/24
    }
}

# 定义 LVS 虚拟服务(需与主节点完全一致)
virtual_server 192.168.31.134 80 {
    delay_loop 6          # 健康检查间隔(秒)
    lb_algo rr            # 调度算法(轮询)
    lb_kind DR            # LVS 模式(DR)
    protocol TCP          # 协议类型

    # 真实服务器 1 配置
    real_server 192.168.31.131 80 {
        weight 1          # 权重
        TCP_CHECK {       # 健康检查方式(TCP 端口检查)
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }

    # 真实服务器 2 配置
    real_server 192.168.31.132 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
}

这样配置以后,就不需要手工配置VIP,而是keepalived会根据权重自动配置VIP,当然会出现下面几种情况。

1.在都未启动keepalived情况下,谁先启动谁占用vip。

2.如果slave先启动,master后启动,master会抢占vip(包括宕机切换)。

3.如果master先启动,slave后启动,则master会一直持有vip,直到master故障。

这样配置以后,他还会检查后端,如果发现后端异常,则会摘除异常后端。这样VIP本身是高可用的,后端异常也能及时屏蔽。从架构上保证了高可用。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-04-30,如有侵权请联系 cloudcommunity@tencent 删除代理服务器后端配置ampkeepalived

本文标签: 代理服务器