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

相关推荐
百***86464 小时前
服务器部署,用 nginx 部署后页面刷新 404 问题,宝塔面板修改(修改 nginx.conf 配置文件)
运维·服务器·nginx
木童6626 小时前
Nginx 深度解析:概念、架构、配置与虚拟主机实战
运维·nginx·架构
百***69447 小时前
海康威视摄像头RTSP使用nginx推流到服务器直播教程
运维·服务器·nginx
Qlittleboy8 小时前
ThinkPHP 5.1 程序在 Nginx 和 Apache 下的性能对比
运维·nginx·apache
Q鑫8 小时前
LVS/Nginx/Haproxy+keepalived负载均衡集群工作原理
nginx·负载均衡·lvs
源来猿往20 小时前
高并发之nginx架构
运维·nginx
离&染1 天前
宝塔nginx一个域名部署两个前端和两个后端(VUE3)
前端·nginx
℡終嚸♂6801 天前
红帽系统(RHEL 8/9)安装与配置Nginx全攻略
运维·chrome·nginx
百***06011 天前
服务器无故nginx异常关闭之kauditd0 kswapd0挖矿病毒 CPU占用200% 内存耗尽
运维·服务器·nginx
L.EscaRC1 天前
Nginx核心原理机制及其代理实现解析
运维·nginx