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

相关推荐
ttthe_MOon2 小时前
动静分离 + 负载均衡:Nginx 与 Tomcat 深度整合实战
nginx·tomcat·负载均衡
凯子坚持 c7 小时前
Docker实战深度解析:从Nginx部署到私有镜像仓库管理
nginx·docker·eureka
lwhdjbcjdjd12 小时前
Nginx与Tomcat协作处理流程及数据流向
运维·nginx·tomcat
AI_567813 小时前
接口测试“零基础通关“:Postman从入门到自动化测试实战指南
开发语言·lua
kewu897113 小时前
Postman 完全入门教程
测试工具·lua·postman
大大水瓶14 小时前
Nginx学习
学习·nginx·dubbo
百***256115 小时前
Nginx作用以及应用场景
运维·nginx
小徐敲java15 小时前
window使用phpStudy在nginx部署前端测试
运维·前端·nginx
Crazy________15 小时前
38nginx四层负载均衡配置,和动静分离解析
linux·运维·nginx·负载均衡
百***359416 小时前
如何在树莓派部署Nginx并实现无公网ip远程访问内网制作的web网站
前端·tcp/ip·nginx