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 小时前
Zabbix 监控实战:Nginx、MySQL 与 Java 程序配置指南
mysql·nginx·zabbix
仰科网关6 小时前
采集opc da 服务器数据 转 EthernetIP项目案例
网关·modbus·协议转换·规约转换器
HY小宝F10 小时前
腾讯云 × 树莓派摄像头四周实战学习路线 第 2 周 · 第 8 天:Nginx 入门
nginx·腾讯云
流光D11 小时前
AI时代,搭建 web 站点并配置 nginx 反向代理流程
运维·服务器·前端·人工智能·nginx·ai·ai编程
姚不倒1 天前
Nginx 反向代理:5 种负载均衡策略与实战
运维·nginx·负载均衡
Achieve前端实验室1 天前
SSG 预渲染工具站 SEO 优化实践:从零收录到全面修复的 7 个问题
nginx·seo·前端工程化
qq_322762751 天前
一个接口从能用到稳定,中间差的到底是什么
服务器·开发语言·lua·接口·fastapi·请求
姚不倒1 天前
Nginx 虚拟主机:server_name 匹配规则与实战
运维·nginx
hoho_121 天前
麒麟V10升级nginx最新版本到1.31.4
java·服务器·nginx
姚不倒1 天前
Nginx 核心架构:Master-Worker、epoll、热重载深度解析
运维·nginx·架构