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

相关推荐
scheduleTTe21 小时前
Nginx
服务器·前端·nginx
pixcarp21 小时前
Nginx实战部署与踩坑总结 附带详细配置教程
服务器·前端·后端·nginx·golang
绿草在线1 天前
SpringBoot请求与响应全解析
spring boot·后端·lua
Slow菜鸟1 天前
Java 开发环境安装指南(7) | Nginx 安装
java·开发语言·nginx
陈皮糖..1 天前
27 届运维实习笔记|第三、四周:从流程熟练到故障排查,企业运维实战深化
运维·笔记·sql·nginx·ci/cd·云计算·jenkins
空中海2 天前
Nginx 知识体系 · 下篇:高级与实战
运维·nginx·spring
心之所向,自强不息2 天前
VSCode + EmmyLua 调试 Unity Lua(最简接入 + 不阻塞运行版)
vscode·unity·lua
身如柳絮随风扬2 天前
Nginx 入门教程:从安装到配置反向代理与负载均衡
运维·nginx·负载均衡
weixin_408099672 天前
Lua请求文字识别ocr api
图像处理·人工智能·后端·ocr·lua·api·文字识别
IntMainJhy2 天前
Flutter flutter_animate 第三方库 动画的鸿蒙化适配与实战指南
nginx·flutter·harmonyos