背景
我有一个远程服务器,通过使用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 UIhttps://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界面,但是它返回以下错误代码:
很明显,在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。