在不修改前端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;
没看懂这块,是要写在哪里的?
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/; }