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·dns
catoop10 小时前
生产环境 nginx 推荐配置
运维·nginx
终端行者14 小时前
Nginx端到端反向代理https配置
运维·nginx·https
Wang's Blog14 小时前
Lua: 事件处理深度解析之从协程到跨平台架构实践
junit·架构·lua
岁岁种桃花儿15 小时前
Nginx高并发网站技术的实战篇
运维·nginx
加油vekiki16 小时前
nginx+keepalived搭建主备nginx
nginx
码上宝藏18 小时前
从解耦到拓展:Clapper 0.10.0 插件化架构设计与 Lua 脚本集成
linux·开发语言·lua·视频播放器·clapper
Roye_ack18 小时前
【微服务 Day3】SpringCloud实战开发(网关路由 + 网关登录校验 + 自定义过滤器 + 配置共享 + 配置热更新 + 动态路由)
网关·spring cloud·微服务·架构·过滤器·拦截器·配置管理
MACKEI18 小时前
Nginx 静态图片访问故障快速排查手册
nginx
蜀中孤鹰18 小时前
从秒级到毫秒级:一次Redis限流脚本的深度优化实战
redis·spring cloud·lua