gpt4 book ai didi

nginx - 在Nginx反向代理后面进行服务时,Swagger UI无法按预期工作

转载 作者:行者123 更新时间:2023-12-03 16:12:42 36 4
gpt4 key购买 nike

我使用swagger-ui-express包(https://github.com/scottie1984/swagger-ui-express)(Node.js)并在此配置下正常工作:

const swaggerUi = require('swagger-ui-express');
const swaggerDocument = require('./swagger.json');
app.use('/api-docs',swaggerUi.serve, swaggerUi.setup(swaggerDocument));


当直接进入/api-docs时,一切都很好,
但是当我来自nginx时,例如 host/myApp/api-docs将我重定向到 host/api-docs,很明显,重定向后我得到了404

最佳答案

问题出在swagger-ui-express中间件上,该中间件将用户重定向到host/api-docs,并且不使用路径的前缀,因此我解决了一个问题,在中间件中使用了以下路径:

const swaggerUi = require('swagger-ui-express');
const swaggerDocument = require('./swagger.json');
app.use('/app-prefix/api-docs',swaggerUi.serve, swaggerUi.setup(swaggerDocument));


在nginx中,我定义了两个位置:


location /app-prefix/api-docs {
proxy_pass http://172.18.0.89:3000/app-prefix/api-docs;
}

location /app-prefix/ {
proxy_pass http://172.18.0.89:3000/;
}



因此,当用户请求nginx时,nginx将其路由到应用程序的第二条路径: /app-prefix/api-docs
然后那张大刀阔斧的middlware将其重定向到 host/app-prefix/api-docs并重定向到正确的路径,
现在应用程序路线和摇摇晃晃的工作正常。

关于nginx - 在Nginx反向代理后面进行服务时,Swagger UI无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57968488/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com