从nginx子位置访问swagger ui docker实例
我很难让Docker容器为我的nginx代理后面的swagger ui提供静态资产。我的nginx配置是:从nginx子位置访问swagger ui docker实例,nginx,swagger-ui,Nginx,Swagger Ui,我很难让Docker容器为我的nginx代理后面的swagger ui提供静态资产。我的nginx配置是: server { server_name api.example.com; listen 443 ssl http2; listen [::]:443 ssl http2; location ^~ /docs { proxy_pass http://127.0.0.1:9505/; } location / { proxy_
server {
server_name api.example.com;
listen 443 ssl http2;
listen [::]:443 ssl http2;
location ^~ /docs {
proxy_pass http://127.0.0.1:9505/;
}
location / { proxy_pass http://127.0.0.1:9005; }
}
其中,我们的主API在根位置响应,如果url中指定了/docs,则代理swagger docker容器,通过以下方式启动:
docker run -d -p 9505:8080 --name swagger -e API_URL=https://api.example.com/swagger.json swaggerapi/swagger-ui
当点击https://api.example.com/docs
但是所有的静态资产都是404,因为它们试图调用https://api.example.com/swagger-ui.css
,例如
我不希望在我的根位置块中放置try\u files
,因为这样我会得到大量额外的处理,迫使所有正常的API请求在出错并进入正确的API代理之前首先通过swagger代理
让swagger在这样的子位置运行是否有一些简单的配置更改我没有做?看起来像是将我的位置更改为:
location^~/docs/
,后面的斜杠已经解决了这个问题?我不完全确定为什么我必须进一步深入到nginx文档中