Nginx - 根据请求参数路由进行不同的响应

文章目录

需求

业务有一个统一入口

java 复制代码
/api/biz?type=1
/api/biz/type=2

需要对不同的接口实现流控

最常见的是通过location进行路径匹配的时候,但是无法使用正则表达一起捕获这个路径和querstring的参数。如果我们想通过URL里面的Query String进行不同的rewrite,应该如何处理呢?答案就是$arg变量。

Nginx里面$query_string$args相同,存储了所提交的所有$query_string;比如&type=1&name=artisan

如果想要在nginx里面单独访问这些变量。可以这样 比如type变量可以这样访问 arg_type


思路

还是需要找 nginx 的内置参数 看看能不能获取到传递的参数

https://nginx.org/en/docs/

https://nginx.org/en/docs/varindex.html

找到


https://nginx.org/en/docs/http/ngx_http_core_module.html#var_query_string


java 复制代码
location /api/biz{ 
   # 注意if后面要跟着空格
   if ($query_string ~* ^(.*)type=1){
      // 响应
   }
   if ($query_string ~* ^(.*)type=2){
      // 响应
   }

可参考 这里

相关推荐
姚不倒3 分钟前
三节点 TiDB 集群部署与负载均衡搭建实战
运维·数据库·分布式·负载均衡·tidb
gpio_014 分钟前
自建gitlab服务器并用sakurafrp穿透
运维·服务器·gitlab
k7Cx7e6 分钟前
Debian执行ssh root@localhost 提示认证失败
运维·debian·ssh
闻道且行之7 分钟前
Nginx 安装、做成服务及 HTTPS 配置全流程
linux·运维·nginx·https
人工智能训练12 分钟前
Qwen3.5 开源全解析:从 0.8B 到 397B,代际升级 + 全场景选型指南
linux·运维·服务器·人工智能·开源·ai编程
蜕变的小白13 分钟前
Linux系统编程-->UDP编程:C/S模型实战详解
linux·运维·网络协议·udp
FIT2CLOUD飞致云15 分钟前
里程碑丨JumpServer开源堡垒机GitHub Star数突破30,000个!
运维·开源·堡垒机
草莓熊Lotso16 分钟前
MySQL 数据库基础入门:从概念到实战
linux·运维·服务器·数据库·c++·人工智能·mysql
芒果披萨17 分钟前
linux系统管理基本命令行
linux·运维·服务器
喵叔哟18 分钟前
69.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--财务健康度
运维·微服务·.net