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

相关推荐
斌味代码6 小时前
Nginx 配置实战(2026最新版):反向代理+负载均衡+HTTPS+性能优化一网打尽
nginx·https·负载均衡
qzhqbb9 小时前
Web 服务器(Nginx、Apache)
服务器·前端·nginx
qhs157312 小时前
解决 LuaJIT 报错:unknown luaJIT command or jit.* modules not installed
lua
luanma15098013 小时前
Laravel 8.X重磅特性全解析
前端·javascript·vue.js·php·lua
luanma15098013 小时前
Laravel 7.X核心特性深度解析
android·开发语言·php·lua·laravel
qzhqbb15 小时前
Nginx/Apache 访问规则
运维·nginx·apache
捷米特网关模块通讯1 天前
生活用纸造纸线升级实例:S7-1500 通过工业以太网整合 S7-400 系统及西门子触摸屏报警体系
网关·数据采集·西门子plc·工业自动化
上海合宙LuatOS1 天前
LuatOS扩展库API——【air153C_wtd】外部硬件看门狗
物联网·lua·air153c_wtd 库
上海合宙LuatOS1 天前
LuatOS核心库API——【ymodem】文件传输协议
物联网·lua·ymodem协议
liucan20121 天前
nginx服务器实现上传文件功能_使用nginx-upload-module模块
服务器·前端·nginx