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

相关推荐
C_心欲无痕1 小时前
nginx - 实现域名跳转的几种方式
运维·前端·nginx
疆鸿智能研发小助手3 小时前
钢铁厂污水处理系统:疆鸿智能ETHERNET/IP转EtherCAT网关的工业网络集成应用
网关·工业自动化·ethercat·ethernet ip·工业通讯·协议转换网关
令狐少侠20115 小时前
docker基本操作 部署启动nginx
nginx·docker·容器
知南x5 小时前
【物联网视频监控系统----韦东山老师视频总结】(4)流媒体方案的实现之Nginx
物联网·nginx·音视频
极客先躯6 小时前
老版本Postman请求脚本编写指南:从Async/Await到回调函数的完整迁移方案
测试工具·lua·postman
成为你的宁宁10 小时前
【Zabbix运维监控实战(附图文教程):Nginx 服务可用性、连接请求状态、CPU 内存占用与 JVM(Jar 包 / Tomcat)全维度监控】
运维·jvm·nginx·zabbix
oMcLin12 小时前
如何在 Debian 11 上配置并调优 Nginx 与 Lua 脚本,提升高流量 API 网关的性能与安全性?
nginx·debian·lua
oMcLin12 小时前
如何在CentOS 8.4上配置并优化Nginx负载均衡,确保跨境电商平台的高并发请求稳定处理?
nginx·centos·负载均衡
C_心欲无痕15 小时前
为什么前端项目部署需要 nginx 或 Apache?
前端·nginx·apache
C_心欲无痕1 天前
nginx - alias 和 root 的区别详解
运维·前端·nginx