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

相关推荐
Peace6 小时前
【Nginx】
linux·运维·nginx
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ9 小时前
【无标题】
nginx
Aipollo12 小时前
从Nginx到AI网关:网关技术的演进之路
运维·人工智能·nginx
薛定谔的猫喵喵16 小时前
【从 HTTP 到 HTTPS】Flask 多项目迁移到 Nginx 子路径完整实战
python·nginx·http·https·flask·ssl
cvcode_study17 小时前
Nginx 基础
运维·nginx
福大大架构师每日一题17 小时前
nginx 1.31.1 发布:一次安全修复驱动的主线升级,涉及 Rewrite、HTTP/2、Mail、MP4 与工作流修正
nginx·安全·http
捷米特网关模块通讯17 小时前
跨网段耦合器内置NAT映射实现8台西门子PLC虚拟IP无缝接入
网关·plc·工业自动化·工业智能网关·跨网段通讯·工业级耦合器
Shawn Dev17 小时前
使用 Certbot 为 Nginx 自动申请 HTTPS 证书并配置自动续签
运维·nginx·https
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ18 小时前
docker重新加载docer-compose.yml文件(nginx配置)
nginx·docker·eureka
Yana.nice18 小时前
nginx+tomcat环境下,nginx对后端Tomcat实例的健康检查机制
运维·nginx·tomcat