set_rotate
`set_rotate` 指令允许你在 NGINX 配置中在指定值之间实现循环选择。
NGINX Set-Misc module
·
httpserverlocationif in serverif in location
语法set_rotate variable name value1 value2 ...;
默认值none
上下文http, server, location, if in server, if in location
参数3
说明
set_rotate 指令是 NGINX Set-Misc 模块的一部分,该模块提供包括变量操作在内的多种功能。它允许你定义一组值,NGINX 可以从中选择一个值赋给变量。当 set_rotate 执行时,它会在定义的值集合中进行迭代,维护一个内部状态,使其能够在每个请求中依次选择下一个值,有效地在列表中“轮换”。这种行为可用于负载均衡或根据定义的值执行轮询操作。
该指令需要三个参数:要设置的变量名、集合中的第一个值,以及一个或多个附加值。指令会将结果存储在指定变量中,在同一请求上下文内每次调用时在列表中循环选择。特别是在需要将流量分配到多个后端等场景中,这非常有用。
该指令可在多种上下文中使用,包括 http、server、location 以及这些上下文中的 if,在不同的配置范围内提供了灵活性。务必确保值的顺序定义明确,因为指令会严格按照提供的序列执行。
配置示例
location /example {
set_rotate $my_var "value1" "value2" "value3";
}⚠
确保至少定义两个值;否则,轮换不会生效。
⚠
轮换的内部状态按每个请求维护;新请求将从第一个定义的值开始。
⚠
此指令不会在请求之间保留上次选定的值;在新请求时会重置。