我有像
https://sourceURL/api/fcst/login/login?ProCode=420000
这样的原始url,我想配置proxy_pass让它转发到https://targetURL/pestiot/api/fcst/login/login?ProCode=420000
。
这是我当前的配置
location ~ ^/api {
if ($request_uri ~* "ProCode=420000") {
rewrite ^(/api/fcst.*)$ /pestiot$1 break;
proxy_pass https://targetURL;
break;
}
}
这似乎总是行不通。最终目标整个网址中不存在 pestiot。 目前,
https://sourceURL/api/fcst/login/login?ProCode=420000
时,响应是 403 Forbidden。https://targetURL/pestiot/api/fcst/login/login?ProCode=420000
有效https://targetURL/api/fcst/login/login?ProCode=420000
回复404这个配置可以工作。我的错误是这样的
proxy_set_header Host $http_host;
由于我曾经代理过一次originalUrl,所以这句话应该是
proxy_set_header Host $proxy_host;