Apisix自定义httpcode 请求重试

我们通过插件来做比较麻烦并且还需要考虑重新lb的问题,有一个比较简单的方法是利用nginx的请求重试信号。

Apisix本身默认也有该种设定,不过默认只针对 timeout情况会请求重试

默认请求重试次数是:updateam node 节点数量 -1

相关逻辑在apisix-balancer.luaset_balancer_opts 方法中

设置Nginx配置文件,添加请求重试判断:

我们在 ngx_tpl.lua 760行添加如下配置,示例httpcode可更换
proxy_next_upstream error timeout http_500 http_429 non_idempotent;

支持重试的httpcode可以查看 nginx官方proxy-next-upstream文档

apisix在发生请求重试时,打印的日志中 upstream-statusupstream 会依次将每次请求的结果、上游地址记录出来

相关推荐
疆鸿智能研发小助手42 分钟前
疆鸿智能 EtherNet/IP转ETHERCAT网关:打通罗克韦尔与汇川伺服的石材产线
网关·以太网·工业自动化·ethercat·ethernet ip·工业通讯·协议转换网关
洋葱 ☠1 小时前
极简部署linux免费ssl证书Let‘s Encrypt,自动续签,nginx/apache都可以,域名指向服务器即可,无需项目
linux·nginx·ssl
peixiuhui1 小时前
EdgeGateway 快速开始手册-OPUCA 服务器
mqtt·网关·modbus·iotgateway·边缘计算网关·edgegateway·opuca
shenghuiping20012 小时前
OPSWAT https enable 问题解决
nginx·https·ssl·443·opswat
peixiuhui2 小时前
EdgeGateway 快速开始手册-串口服务器
运维·人工智能·网关·边缘计算·工业控制·串口服务器·iotgateway
oMcLin2 小时前
如何在Ubuntu 22.04上通过调优Nginx和PHP‑FPM,提升高并发WordPress网站的负载均衡与缓存性能?
nginx·ubuntu·php
peixiuhui2 小时前
EdgeGateway 快速开始手册-常见问题
mqtt·网关·yolo·modbus·边缘计算网关·edgegateway·开源网关程序
五仁火烧17 小时前
Vue3 项目的默认端口行为
服务器·vue.js·nginx·容器·vue
oMcLin19 小时前
如何在 RHEL 7 上优化 Nginx 与 PHP‑FPM 配置,确保高并发 Web 应用的稳定性与响应速度?
前端·nginx·php
鲨莎分不晴20 小时前
Nginx 部署前端项目实战指南
运维·前端·nginx