【问题标题】:NGINX reverse proxy and swagger-ui.htmlNGINX 反向代理和 swagger-ui.html
【发布时间】:2019-02-12 07:37:55
【问题描述】:

我一直在尝试让自己在 NGINX 反向代理后面大张旗鼓地工作,但我就是做不好。我的服务在 docker 容器中运行,我想使用这些示例 url 访问它们:

我的服务:

http://service-host.example.com/my-service1



大摇大摆:

http://service-host.example.com/my-service1/api


我的嵌套位置块如下所示:

location /my-service1 {
  resolver 127.0.0.11 valid=30s;
  set $upstream my-host.example.com;
  proxy_pass http://$upstream/home;

      location ~ /api {
            resolver 127.0.0.11 valid=30s;
            set $upstream my-host.example.com;
            proxy_pass http://$upstream/swagger-ui.html;
      }
      location ~ /webjars {
            resolver 127.0.0.11 valid=30s;
            set $upstream my-host.example.com;
            proxy_pass http://$upstream/;
      }
      location ~ /v2 {
            resolver 127.0.0.11 valid=30s;
            set $upstream my-host.example.com;
            proxy_pass http://$upstream/;
      }
      location ~ /swagger-resources {
            resolver 127.0.0.11 valid=30s;
            set $upstream my-host.example.com;
            proxy_pass http://$upstream/;
      }
}

我的 NGINX 日志如下所示:

GET /my-service1/api/ HTTP/2.0" 200
GET /my-service1/api/webjars/springfox-swagger-ui/springfox.css?v=2.9.2 HTTP/2.0" 200
GET /my-service1/api/webjars/springfox-swagger-ui/swagger-ui-bundle.js?v=2.9.2 HTTP/2.0" 200
GET /my-service1/api/webjars/springfox-swagger-ui/swagger-ui.css?v=2.9.2 HTTP/2.0" 200
GET /my-service1/api/webjars/springfox-swagger-ui/springfox.js?v=2.9.2 HTTP/2.0" 200
GET /my-service1/api/webjars/springfox-swagger-ui/swagger-ui-standalone-preset.js?v=2.9.2 HTTP/2.0" 200

直接测试这个,而不通过 NGINX,这个过程会继续进行,使用 GET 到 /v2/api 和 /swagger-resources。在此之前使用反向代理卡住了。

关于如何解决此问题的任何建议?

编辑:这是一个 NGINX 日志,当它不尝试反向代理时,而是直接转到 http://myservice.example.com/swagger-ui.html 时,它可以完美运行!

myservice.example.com 192.168.1.30 - - [12/Feb/2019:09:59:44 +0000] "GET /swagger-ui.html HTTP/2.0" 200 3318 "-" "Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0"
myservice.example.com 192.168.1.30 - - [12/Feb/2019:09:59:44 +0000] "GET /webjars/springfox-swagger-ui/springfox.css?v=2.9.2 HTTP/2.0" 200 2894 "https://myservice.example.com/swagger-ui.html" "Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0"
myservice.example.com 192.168.1.30 - - [12/Feb/2019:09:59:44 +0000] "GET /webjars/springfox-swagger-ui/swagger-ui.css?v=2.9.2 HTTP/2.0" 200 154488 "https://myservice.example.com/swagger-ui.html" "Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0"
myservice.example.com 192.168.1.30 - - [12/Feb/2019:09:59:45 +0000] "GET /webjars/springfox-swagger-ui/swagger-ui-bundle.js?v=2.9.2 HTTP/2.0" 200 1448844 "https://myservice.example.com/swagger-ui.html" "Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0"
myservice.example.com 192.168.1.30 - - [12/Feb/2019:09:59:45 +0000] "GET /webjars/springfox-swagger-ui/springfox.js?v=2.9.2 HTTP/2.0" 200 96207 "https://myservice.example.com/swagger-ui.html" "Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0"
myservice.example.com 192.168.1.30 - - [12/Feb/2019:09:59:45 +0000] "GET /webjars/springfox-swagger-ui/swagger-ui-standalone-preset.js?v=2.9.2 HTTP/2.0" 200 440850 "https://myservice.example.com/swagger-ui.html" "Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0"
myservice.example.com 192.168.1.30 - - [12/Feb/2019:09:59:46 +0000] "GET /swagger-resources/configuration/ui HTTP/2.0" 200 450 "https://myservice.example.com/swagger-ui.html" "Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0"
myservice.example.com 192.168.1.30 - - [12/Feb/2019:09:59:46 +0000] "GET /swagger-resources/configuration/security HTTP/2.0" 200 2 "https://myservice.example.com/swagger-ui.html" "Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0"
myservice.example.com 192.168.1.30 - - [12/Feb/2019:09:59:46 +0000] "GET /swagger-resources HTTP/2.0" 200 90 "https://myservice.example.com/swagger-ui.html" "Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0"
myservice.example.com 192.168.1.30 - - [12/Feb/2019:09:59:46 +0000] "GET /v2/api-docs HTTP/2.0" 200 8387 "https://myservice.example.com/swagger-ui.html" "Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0"

【问题讨论】:

  • 您是否在浏览器中查看了您发出的请求的内容?我的假设是,在解析 url 时,nginx 没有返回 swagger 初始化 UI 所需的文件。

标签: nginx swagger reverse-proxy


【解决方案1】:

使用这个配置在我的服务器(NET CORE)中大摇大摆地工作

    location / {
        #root   /srv/ftp;
        #index  index.html index.htm;
        proxy_pass         http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-05
    • 2011-08-09
    • 2013-02-18
    • 2021-04-08
    • 2019-03-19
    • 2016-07-22
    • 1970-01-01
    相关资源
    最近更新 更多