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

相关推荐
rkmhr_sef22 分钟前
Nginx反向代理出现502 Bad Gateway问题的解决方案
运维·nginx·gateway
irisMoon061 小时前
mac本地代理nginx,解决跨域问题
linux·nginx·macos
alenliu06213 小时前
跟着 Lua 5.1 官方参考文档学习 Lua (12)
lua
勘察加熊人13 小时前
fastapi房产销售系统
数据库·lua·fastapi
交换机路由器测试之路16 小时前
【资料分享】wireshark解析脚本omci.lua文件20250306版本发布(独家分享)
网络协议·测试工具·wireshark·lua·omci
q5673152317 小时前
使用Lua和lua-resty-http-simple库的爬虫程序爬取图片
爬虫·http·lua
若云止水18 小时前
Ubuntu 下 nginx-1.24.0 源码分析 - conf_ctx
数据库·nginx·ubuntu
AnalogElectronic1 天前
整理一下高级设施农业栽培学这门课程的所有知识点
学习·lua
码上飞扬1 天前
Nginx负载均衡配置详解:轻松实现高可用与高性能
运维·nginx·负载均衡
nvvas1 天前
介绍高性能的HTTP和反向代理服务器Nginx
网络协议·nginx