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

相关推荐
七七powerful6 小时前
为离线的bcliunx euler&龙晰 配置 yum源 nginx代理
nginx·yum·bclinux
AlbertS8 小时前
Let‘s Encrypt 证书自动续期并自动应用到Nginx
运维·nginx·ssl·cerbot·renew·续期
ellis19708 小时前
u3d插件xLua[二]例2:U3DScripting,例3:UIEvent分析
unity·lua
泡沫冰@1 天前
上章节中文件的讲解
前端·网络·nginx
難釋懷1 天前
Nginx内存缓存
nginx·缓存·junit
云计算磊哥@1 天前
运维开发宝典059-大型网站nginx服务器管理全集5
服务器·nginx·运维开发
cesium vue2 天前
nginx 流媒体配置
运维·nginx
zhougl9962 天前
Gateway 和 Nginx 路由区别
运维·nginx·gateway
布兰妮甜2 天前
跨域全方案对比:CORS、Nginx 反向代理、JSONP、iframe、postMessage
nginx·跨域·cors·前端架构·浏览器安全
難釋懷2 天前
Nginx-proxy缓存断点续传缓存 range
运维·nginx·缓存