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

相关推荐
IMPYLH38 分钟前
Lua 的 setmetatable 函数
开发语言·笔记·后端·游戏引擎·lua
我发在否19 小时前
APISIX > ai-proxy 插件
apisix·ai网关
全栈工程师修炼指南1 天前
Nginx | 负载均衡策略:一致性哈希算法实践
运维·算法·nginx·负载均衡·哈希算法
街灯L1 天前
【Ubuntu】安装配置nginx文件版
服务器·nginx·ubuntu
黛琳ghz1 天前
极速云原生:openEuler之Redis与Nginx部署性能实战
redis·nginx·云原生·操作系统·压力测试·openeuler·服务器部署
凤凰战士芭比Q1 天前
web中间件——(二)Nginx(高级功能、优化)
前端·nginx·中间件
用户6135411460162 天前
nginx-sticky怎么用 Nginx 负载均衡添加 sticky 模块完整步骤
nginx
Debug 熊猫2 天前
Nginx代理快速入门(结合vue3简单项目讲解)
运维·nginx
兔子零10242 天前
nginx 配置长跑(下):全局变量、调试思路与可观测性
后端·nginx