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){
      // 响应
   }

可参考 这里

相关推荐
此生决int9 分钟前
Linux系统(07)——进程概念(下)
linux·运维·服务器
玄芯散人9 分钟前
【金丹·88】Makefile从入门到放弃:手动编译自动化之路
运维·自动化
和裕10 分钟前
定制纸箱刀卡、平卡、隔档分别是什么?结构与适用场景区别全解析
大数据·运维·网络·人工智能·算法
一条泥憨鱼24 分钟前
【计算机网络】| 从ping 不通出发:NAT 与 DHCP 在做什么
运维·服务器·网络·计算机网络
下辈子不要当码农26 分钟前
Linux驱动(2)
linux·运维·单片机
壹玖玖肆27 分钟前
openGauss 7.0 Docker 部署 + 跨版本迁移全流程(aarch64)
运维·docker·容器
筑梦之路30 分钟前
Alibaba Cloud Linux 4 制作 Ansible RPM包实践(离线可复用)——筑梦之路
linux·运维·ansible
IT利刃出鞘37 分钟前
Linux权限--adduser和useradd的区别
linux·运维·服务器
Ruiery38 分钟前
Linux 6.6内核内存管理深度解析(五):page cache(页缓存)— 读缓存在内存、写延迟回写
linux·运维·服务器·缓存
研发小能38 分钟前
金融行业 DevOps 流水线解决方案:从环境准备到发布门禁的全链路提效
运维·金融·devops