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

相关推荐
2301_8049475813 小时前
nginx
java·服务器·nginx
ideal-cs16 小时前
总结:Nginx配置文件案例说明
java·运维·nginx·nginx配置文件
旭日跑马踏云飞18 小时前
【Nginx】相关优化
运维·javascript·nginx
逸尘散修18 小时前
Nginx 限流实战全指南:从原理到生产级配置详解
nginx
71ber19 小时前
RHCSE 实战笔记:Nginx 和 Tomcat --企业高并发应用的杀手锏
linux·nginx·tomcat
blockrock19 小时前
Nginx再习
运维·nginx
敲代码的哈吉蜂19 小时前
服务端I/O流程、I/O模型、网络I/O模型
linux·服务器·nginx
钟智强20 小时前
CVE-2025-49844高危预警:Redis Lua脚本引擎UAF漏洞深度剖析与POC实战
数据库·redis·web安全·junit·lua
cyber_两只龙宝20 小时前
Tomcat--企业级web应用服务器详细介绍与整合Nginx配置流程
linux·运维·前端·nginx·云原生·tomcat·负载均衡
我是Superman丶20 小时前
Nginx反向代理流式输出延迟?一招解决SSE/WebSocket缓冲问题SpringBoot+SSE流式输出卡住?Nginx这个配置必须关!
运维·websocket·nginx