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

相关推荐
落叶_Jim7 小时前
2026年Nginx配置HTTPS全流程-从零到自动续期实战指南
运维·nginx·https
IT策士11 小时前
深入浅出:使用 Gunicorn + Nginx + Docker 将 Django 项目部署到云服务器
nginx·docker·gunicorn
yeshan12 小时前
【Draft】基于 cluacov 的 Lua 代码分支覆盖率统计:从行级近似到指令级精确
单元测试·lua
悠然南风12 小时前
Nginx 学习总结-补充
nginx
zz07232014 小时前
Redis + Lua 实现高性能分布式限流
redis·lua·aop·限流算法·分布式限流
衣舞晨风1 天前
运行时行为盲区:API7 AI 网关CPU打满故障的AI辅助事后复盘
lua·openresty·apisix·coroutine·cpu-saturation·socket-buffer
咚为1 天前
比AccessLog更全面的原生Nginx 日志记录
运维·nginx·junit
身如柳絮随风扬1 天前
Nginx 完全指南:核心用途、配置文件详解与动态配置实践
运维·nginx
一个处女座的程序猿O(∩_∩)O1 天前
如何保持nginx配置与前端打包dist的路径保持一致、解决页面刷新白屏以及页面跳转问题
运维·前端·nginx
椰汁菠萝1 天前
[特殊字符] Nginx UI:Docker 部署与完全使用指南
nginx·ui·docker