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

相关推荐
Wang's Blog4 小时前
Lua: Web应用开发之OpenResty与Lapis框架深度指南
lua·openresty
木风小助理5 小时前
Shell编程中awk命令详解:从基础到高阶应用
lua
vfbox-22126 小时前
实现消防主机Modbus转IEC 61850接入智能消防监控平台项目案例
网关·协议网关·iec61850·vfbox
登山人在路上8 小时前
Nginx负载均衡策略
服务器·nginx·负载均衡
刘火锅10 小时前
Nginx HTTP基本认证配置技术文档
运维·nginx·http
Ancelin安心10 小时前
计算机网络易混淆知识点总结
网络协议·tcp/ip·计算机网络·nginx·网络安全·docker·云原生
我就是你毛毛哥11 小时前
Linux 系统上安装 Nginx以及使用,推荐使用编译安装
linux·运维·nginx
尘下吹霜11 小时前
【记录】Nginx日志过大导致服务器空间爆满
服务器·网络·nginx
我要打倒凹凸曼12 小时前
使用 Nginx 实现 Tomcat 集群的负载均衡
nginx·tomcat·负载均衡
每天回答3个问题12 小时前
Lua数组
ue4·lua·虚幻引擎