Nginx代理URL追加参数

半兽人 发表于: 2020-12-01   最后更新时间: 2022-09-13 16:21:08  
{{totalSubscript}} 订阅, 5,267 游览

在不修改前端url的前提下,可以利用Nginx配置在请求的参数后面加上apikey密钥。

例如:

# 访问
http://mywebsite.com/oneapi?field=22

# 实际访问
https://api.somewhere.com/?field=22&apiKey=tiger

初始配置文件

server {
    listen   80;
    server_name  mywebsite.com;
    location /oneapi{
        proxy_pass         https://api.somewhere.com/;
    }
}

解决方法

set $delimeter "";
if ($is_args) {
    set $delimeter "&";
}
set $args $args${delimeter}apiKey=tiger;
更新于 2022-09-13

惜爱 1年前

没看懂这块,是要写在哪里的?

半兽人 -> 惜爱 1年前
location = /oneapi {
  set $args $args&apiKey=tiger;
  proxy_pass https://api.somewhere.com;
}

如果$args为空,则下面的也有效:

location /oneapi {
  set $delimeter "";
  if ($is_args) {
    set $delimeter "&";
  }
  set $args "$args${delimeter}apiKey=tiger";

  proxy_pass https://api.somewhere.com/;
}
查看nginx更多相关的文章或提一个关于nginx的问题,也可以与我们一起分享文章