R / Plumber:通过Nginx反向代理重新路由Swagger UI

时间:2019-05-30 13:14:01

标签: r nginx swagger plumber

背景

我有一个远程服务器,通过使用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。考虑到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。

0 个答案:

没有答案