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 会依次将每次请求的结果、上游地址记录出来

相关推荐
HEADKON11 小时前
培西达替尼Pexidartinib对比伊马替尼在腱鞘巨细胞瘤中的CSF1R抑制与肝毒性风险
nginx
燕-孑11 小时前
Nginx详解——进阶
运维·nginx
野熊佩骑14 小时前
一文读懂Nginx 之 Ubuntu使用apt方式安装Nginx官方最新版本
linux·运维·服务器·nginx·ubuntu·http
墨着染霜华15 小时前
Windows 启动 Nginx 一闪而过、pid 丢失、logs 目录报错彻底解决
运维·windows·nginx
ji_shuke16 小时前
前端请求/authapi/auth/permissions 实际发给后端 /api/auth/permissions 本地和线上配置
运维·前端·nginx
赵成ccc16 小时前
【无标题】
linux·nginx
江上清风山间明月18 小时前
Nginx一个IP部署多个网站
运维·tcp/ip·nginx·部署多个网站·一个ip·一个服务器
文青小兵18 小时前
云计算Linux——数据库MySQL部分命令 (十五)
linux·数据库·mysql·nginx·云计算
文青小兵19 小时前
云计算Linux——负载均衡 (十四)
linux·运维·服务器·nginx·云计算·负载均衡
落叶_Jim1 天前
2026年Nginx配置HTTPS全流程-从零到自动续期实战指南
运维·nginx·https