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

相关推荐
可可嘻嘻大老虎4 小时前
nginx无法访问后端服务问题
运维·nginx
bantinghy8 小时前
Nginx基础加权轮询负载均衡算法
服务器·算法·nginx·负载均衡
Dontla9 小时前
Vite代理 vs Nginx代理(开发环境用Vite,生产环境用Nginx)
运维·nginx
No Silver Bullet10 小时前
Nginx 内存不足对Web 应用的影响分析
运维·前端·nginx
Access开发易登软件10 小时前
Access 窗体中实现数字滚动动画:Timer + Easing 的技术实现
运维·数据库·nginx·microsoft·access
凌寒1111 小时前
minio预签名访问地址经过Nginx代理后返回403问题
服务器·网络·nginx
陶甜也17 小时前
Vue.js 多项目同端口部署实战:上下文路径配置指南
前端·javascript·vue.js·nginx
王锋(oxwangfeng)18 小时前
Nginx 四层 TCP 与七层 HTTP 转发实战指南
tcp/ip·nginx·http
曹牧19 小时前
Nginx:POST
运维·nginx
市安20 小时前
NFS 共享存储支撑下的 HAProxy+Nginx 集群性能验证实验
运维·nginx·haproxy·nfs