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

相关推荐
lifewange3 小时前
Nginx + Kafka 可编程精细控制 完整版(可直接落地运行)
运维·nginx·kafka
再战300年5 小时前
nginx之负载均衡
运维·nginx·负载均衡
木雷坞11 小时前
Nginx Proxy Manager 反代 502 排查:Docker 网络、容器端口和上游地址
网络·nginx·docker
义龙陳序员11 小时前
Nginx 修改默认错误页面:实现带 CSS 动画的自定义错误页
运维·css·nginx·nginx源码
胡志辉1 天前
Nginx CVE‑2026‑42945:隐藏18年高危漏洞被曝光(附解决方案)
前端·后端·nginx
风曦Kisaki1 天前
# Linux运维Day01:Nginx基础
linux·运维·nginx
笨鸟先飞的橘猫1 天前
基于Skynet的分布式游戏场景题:大型MMO的跨服战场系统设计
分布式·学习·游戏·面试·lua
Only丿阿海1 天前
当运维与AI结合 — 用 AI Agent 去维护 Nginx
运维·人工智能·nginx·agent·agent4j
养肥胖虎2 天前
Docker学习笔记:后端、数据库和反向代理怎么一起跑起来
后端·nginx·docker·postgresql·go·部署
树下水月2 天前
文件分片上传接口(Easyswoole)被nginx拦截,并返回状态码400和408的抓包排查过程
运维·nginx