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

相关推荐
oMcLin1 小时前
如何在Ubuntu 24.04上通过配置Nginx与Keepalived实现高可用负载均衡集群
nginx·ubuntu·负载均衡
小Ti客栈2 小时前
前后台Nginx部署同域名路径区分配置
java·前端·nginx
星空露珠4 小时前
时间罗盘小界面模组
开发语言·数据结构·算法·游戏·lua
fredricen5 小时前
Openwrt21.02应用日志全局开关控制
lua·openwrt·luci
cooldream20096 小时前
Nginx 部署 Vue 项目后首页空白问题深度解析:从样式冲突到路由配置的系统性排查
运维·vue.js·nginx
每天回答3个问题6 小时前
Lua Table(表)
开发语言·ue4·lua·虚幻引擎
工具罗某人7 小时前
docker快速部署nginx
java·nginx·docker
曲幽8 小时前
从本地到云端:深入理解WSGI,让你的Python Web应用稳健部署
python·nginx·flask·fastapi·web·gunicorn·uvicorn·diango·waitress
遇见火星8 小时前
LVS+Keepalived+Nginx 高可用架构揭秘
nginx·架构·lvs·keepalived
Kang.Charles8 小时前
Lua创建Class
开发语言·lua