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

相关推荐
爱莉希雅&&&2 小时前
LVS+Keepalived+DNS+Web+NFS 高可用集群项目完整部署流程
运维·nginx·dns·lvs·keepalived·nfs·ipvsadm
终端行者4 小时前
Nginx limit_conn_zone 模块详解 Nginx如何限流 防止CC攻击
网络·nginx
etp_8 小时前
连击非第一击无伤害
运维·nginx
L16247610 小时前
Nginx+Tomcat+Redis(单节点 / 3 节点集群)+Redisson 共享 Session 完整整合手册
redis·nginx·tomcat
菜鸟厚非16 小时前
如何在 Nginx 中配置 HTTPS - Linux
linux·nginx·https
vortex516 小时前
php-fpm + nginx 环境搭建配置与常见问题解决
开发语言·nginx·php
周公挚友16 小时前
centos 7.9 搭建nginx
linux·nginx·centos
alex180116 小时前
nginx配置图片静态路由
数据库·nginx·postgresql
obDLaSfLKr17 小时前
探索.NET 6 下 WPF、OpenCVSharp 与 ReactiveUI 的奇妙之旅
nginx
Echo flower18 小时前
多租户系统域名化改造实践:从 IP 参数到二级域名访问
nginx·多租户