从nginx子位置访问swagger-ui docker实例

时间:2017-11-21 23:08:07

标签: 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_pass http://127.0.0.1:9005; }
}

我们的主API在根位置响应,并且如果在网址中指定了/ 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时获得了swagger-ui index.html的内容,但是因为他们试图调用https://api.example.com/swagger-ui.css而导致所有静态资产404,例如。

我不希望在我的根位置块中放置try_files,因为我最终会进行大量的额外处理,通过swagger代理在发生错误并进入正确的API之前首先强制执行所有正常的API请求代理。

是否有一些简单的配置更改我错过了如何在这样的子位置运行?

0 个答案:

没有答案