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

相关推荐
身如柳絮随风扬1 小时前
Nginx 完全指南:核心用途、配置文件详解与动态配置实践
运维·nginx
一个处女座的程序猿O(∩_∩)O2 小时前
如何保持nginx配置与前端打包dist的路径保持一致、解决页面刷新白屏以及页面跳转问题
运维·前端·nginx
椰汁菠萝10 小时前
[特殊字符] Nginx UI:Docker 部署与完全使用指南
nginx·ui·docker
yoyo_zzm11 小时前
ThinkPHP1.X核心特性解析
数据库·spring boot·nginx
程序员老邢12 小时前
【技术底稿 36】Docker Compose 微服务迁移 K3s:离线导入、镜像挂载、Nginx 重定向全踩坑复盘
nginx·docker·云原生·k3s·微服务迁移·技术底稿·容器运维
JiaWen技术圈12 小时前
Web 安全防护 介绍
运维·nginx·安全
看到代码头都是大的1 天前
Windows环境下绿色版nginx 1.30使用
运维·nginx
lifewange1 天前
Nginx + Kafka 可编程精细控制 完整版(可直接落地运行)
运维·nginx·kafka
再战300年1 天前
nginx之负载均衡
运维·nginx·负载均衡
木雷坞2 天前
Nginx Proxy Manager 反代 502 排查:Docker 网络、容器端口和上游地址
网络·nginx·docker