ECS云服务器偶发Nginx502处理过程

业务访问请求过程

外部公网IP

​ ↓ (阿里云DNAT规则)

CLB负载均衡地址:192.168.0.196

​ ↓ (阿里云CLB负载均衡-监听)

前置nginx:192.168.0.192/192.168.0.194——请求后端应用服务时偶发报错502,且请求时间request_time时间超过3秒

​ ↓ (upstream)——调整连接-proxy_connect_timeout/等待-proxy_read_timeout/发送请求-proxy_send_timeout到上游服务器响应的超时时间

​ ↓ (proxy_pass)——但默认超时时间均为60秒,因此不是nginx到后端服务器的请求时间问题

后端应用服务VIP:192.168.0.197

​ ↓ (keepalived)——健康检查配置/配置VRRP通信方式:组播地址

后端应用服务器组:192.168.0.179/192.168.0.180/192.168.0.195——后端应用服务调用时正常响应nginx请求,并正常回包

问题所在:

参考链接:
https://www.ithothub.com/ihh/2021080420214426.html
https://blog.csdn.net/windlyrain/article/details/88396866

阿里云官方文档明确描述了ECS不支持多播协议,而这里阿里云ECS/云服务器部署阿里云环境上;如果需要使用多播,建议改为使用单播点对点方式
阿里云官方文档:(ECS使用限制)
https://help.aliyun.com/zh/ecs/product-overview/limits?spm=a2c6h.13066369.question.5.30dc54e2XypnVy&source=5176.11533457&userCode=28kqeewo&type=copy

限制概述:
... ...
不支持多播协议。如果需要使用多播,建议改为使用单播点对点方式
... ...

解决方案:

单播模式需要关闭vrrp_strict,严格遵守vrrp协议这个选项
单播需要在VIP实例配置段加入单播的源地址和目标地址

keepalived修改配置(修改为单播地址)

1、关闭vrrp_strict配置
2、配置单播的IP,如下:
unicast_src_ip 192.168.0.61 unicast_peer {   192.168.0.60 }
除了keepalived外的其他一些负载均衡服务的底层协议有的默认也基于组播协议,这个限制或多或者给大家使用上增加一些困扰,大家自己来搭建负载均衡存在这一个限制外,另外还存在另外的一个限制就是VIP

### 具体配置如下:
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    unicast_src_ip  192.168.0.179		#单播:本机地址
    virtual_router_id 51
    priority 101
    nopreempt
    advert_int 2
    authentication {
        auth_type PASS
        auth_pass K8SHA_KA_AUTH
    }
    unicast_peer {
        192.168.0.180					#单播:对端,即这里配置vip的其他服务器地址
        192.168.0.195
    }
    virtual_ipaddress {
        192.168.0.197
    }
    track_script {
      chk_apiserver 
} }

keepalive中组播地址与单播地址的区别

  1. 组播地址:
    • 组播地址用于将数据包发送到一组主机。组播地址的范围是224.0.0.0到239.255.255.255
    • 组播地址通常用于广播或多播通信,适用于需要向多个接收者发送相同数据的场景
  2. 单播地址:
    • 单播地址用于将数据包发送到单个主机。单播地址的范围是1.0.0.0到223.255.255.255
    • 单播地址适用于点对点通信,即数据包只发送到一个特定的目标主机

在阿里云上,keepalived配置组播地址导致Nginx 502错误

① 组播地址在网络中的路由和转发机制与单播地址不同。组播数据包可能会被路由器或交换机以不同的方式处理,导致数据包无法正确到达目标主机

② Nginx与后端服务器之间的网络设备不支持或不正确配置组播地址,可能导致数据包丢失或延迟,从而导致偶发Nginx502错误

posted @ 2025-05-23 13:56  cumybride  阅读(65)  评论(0)    收藏  举报