如何将请求的请求参数与Nginx中的字符串数组进行比较
在Nginx中,我们可以像这样比较请求的请求参数如何将请求的请求参数与Nginx中的字符串数组进行比较,nginx,Nginx,在Nginx中,我们可以像这样比较请求的请求参数 location / { if ( $arg_cmd = "export_query" ) { add_header x-served-from "replica"; proxy_pass http://replica-first; break; } ... 目前,我们正在尝试将带有某些特定参数的请求重定向到其他服务器。这些参数有数百个 如何在nginx中对数组进行参数匹配 map $arg_cmd $replica {
location / {
if ( $arg_cmd = "export_query" ) {
add_header x-served-from "replica";
proxy_pass http://replica-first;
break;
}
...
目前,我们正在尝试将带有某些特定参数的请求重定向到其他服务器。这些参数有数百个
如何在nginx中对数组进行参数匹配
map $arg_cmd $replica {
"export_query" replica-first;
}
server {
...
location / {
if ($replica) {
add_header x-served-from $replica;
proxy_pass http://$replica;
break;
}
}
...
map
上的文档是
注意:在
proxy\u pass
中使用变量将需要。您应该将if条件移动到位置块之外,并将其放置在任何位置指令之前的服务器块中,以防止在同一位置处理的请求与if条件不匹配时出现意外结果。无需在映射中将default
设置为空字符串,如果不满足指令中的任何条件,则没有默认参数,变量将为空。如果您的匹配/重定向需求更复杂,您可以将请求传递到上游服务器,并使用从返回的x-Accel-redirect
头值进行重定向upstream@miknik谢谢你的建议!注意:范围在位置
内部,不能在外部使用。