我有一个RESTAPI Web应用程序,其api端点如
/ api / 1 / help?user =
/ api / 1 / test?user =
我的应用程序在https://mytest-web.azurewebsites.net上运行;
我有一个Nginx网关,因此用户可以使用https://mytestapi.com/api/1/help?user=使用api端点,而这些端点将在https://mytest-web.azurewebsites.net/api/1/help?user=上使用
我有两个Nginx重写规则。这两个最终将使用所有查询参数重写为相同的API端点。但是只有一个将所有查询参数转发到我的RESTAPI网站
第一个 工作表,重写后将传递所有查询字符串参数。
location ~* ^/(api|api2)/ {
set $myhost $host;
#add some more extra header for api processing
add_header x-userlocaction $myhost;
proxy_set_header x-userlocaction $myhost;
rewrite ^(.*)$ $1 break;
add_header X-debug-message "GENERIC API $1" always;
proxy_pass https://mytest-web.azurewebsites.net;
}
不起作用 我为供应商进行了另一次Nginx重写。但这并没有传递查询字符串参数。
location /vendorapi/ {
add_header X-debug-message "vendor API SPECIFIC $1" always;
rewrite ^/vendorapi/(.*)$ /api/$1 break;
proxy_pass https://mytest-web.azurewebsites.net;
}
我必须让供应商通过
使用API/ vendorapi / 1 / help?user =
第二个重写规则有什么问题?
为什么不传递查询字符串参数?
第一个与第二个有何不同?