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

相关推荐
_下雨天.6 小时前
Nginx性能调优与深度监控
运维·nginx
weiwx837 小时前
Nginx location 和 proxy_pass 配置详解
服务器·网络·nginx
向往着的青绿色15 小时前
雷池(SafeLine)社区版免费部署教程|从环境检查到防护实操全流程
网络·计算机网络·nginx·网络安全·容器·网络攻击模型·信息与通信
@大迁世界19 小时前
6 款轻量级 CLI 工具,取代了我臃肿的开发软件
开发语言·lua
困惑阿三19 小时前
全栈服务器运维终极备忘录
运维·服务器·nginx·pm2
无籽西瓜a19 小时前
Docker 环境下 Redis Lua 脚本部署与执行
redis·docker·lua
PascalMing20 小时前
告别 Nginx!ASP.NET Core 实现多域名 Vue 静态服务与代理转发
vue.js·nginx·asp.net
深念Y20 小时前
Nginx和Spring Cloud Gateway
运维·服务器·网络·网关·nginx·spring cloud·微服务
困惑阿三20 小时前
全栈部署排雷手册:从 405 报错到飞书推送成功
服务器·前端·后端·nginx·阿里云·node.js·飞书
yy55271 天前
Nginx 性能优化与监控
运维·nginx·性能优化