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

相关推荐
蒲公英源码3 分钟前
基于Linux+Nginx+PHP+MySQL的命理测算系统
linux·nginx·php
cong_han9 分钟前
【Lua】WireShark抓包
网络安全·wireshark·lua
w***74179 小时前
Nginx—Rewrite
java·数据库·nginx
k***1959 小时前
Nginx反向代理出现502 Bad Gateway问题的解决方案
运维·nginx·gateway
可爱又迷人的反派角色“yang”9 小时前
LVS+Keepalived群集
linux·运维·服务器·前端·nginx·lvs
Hacker_Fuchen9 小时前
Postman最被低估的功能,自动化接口测试效率简直无敌
自动化测试·软件测试·自动化·lua·postman
4***v2149 小时前
使用 Certbot 为 Nginx 自动配置 SSL 证书
运维·nginx·ssl
wuletaotao9 小时前
Postman使用教程
测试工具·lua·postman
e***71679 小时前
Linux下安装Nginx服务及systemctl方式管理nginx详情
linux·运维·nginx
5***g22910 小时前
Ubuntu 系统下安装 Nginx
数据库·nginx·ubuntu