4

背景

我有一个远程服务器,使用 Plumber 在其上运行 R API 服务。从某种意义上说,它是完全可操作的,我可以从外部调用我的服务。

我正在使用 Ubuntu/Nginx 反向代理设置。Plumber 服务正在侦听端口 1163。我随后实现了以下 Nginx 重新路由,以便 API 侦听https://server.net/API/

location /API/ {
 proxy_pass http://localhost:1163/;
 proxy_redirect http://localhost:1163/ $scheme://$host/;
}

这工作正常。现在,默认情况下,Swagger UI 会监听

http://127.0.0.1:1163/__swagger__/

由于上面的配置,这意味着我可以成功访问 Swagger UI

https://server.net/API/__swagger__/

问题

我想配置 Nginx 以便 Swagger UI 监听https://server.net/API/documentation/。我尝试了以下嵌套的 Nginx 配置:

location /API/ {
 proxy_pass http://localhost:1163/;
 proxy_redirect http://localhost:1163/ $scheme://$host/;

 location /API/documentation/ {
 proxy_pass http://localhost:1163/__swagger__/;
 proxy_redirect http://localhost:1163/__swagger__/ $scheme://$host/;
 }

}

现在,在我的浏览器中输入所需的 URL https://server.net/API/documentation/时,我检索了 Swagger 界面,但是它返回以下错误代码:

Swagger_error

显然,在 Nginx 重定向期间已经解析了不正确的 swagger URL。考虑到网址应该说明这一点很清楚

https://server.net/API/swagger.json?schemes=https&host=server.net&path=/API/

代替

http://petstore.swagger.io/v2/swagger.json

如何确保在 Nginx 重定向期间将正确的 URL 解析到 Swagger UI?一切顺利,J。

4

0 回答 0