swagger-ui 通过nginx转发时的巨坑!!!

先上pom

        <dependency>            <groupId>io.springfox</groupId>            <artifactId>springfox-swagger2</artifactId>            <version>2.8.0</version>        </dependency>        <dependency>            <groupId>io.springfox</groupId>            <artifactId>springfox-swagger-ui</artifactId>            <version>2.8.0</version>        </dependency>

配置文件

这样子配上就可以用了。

开始上线测试的时候,系统搭建在线上,用的docker。本身没啥问题, /swagger-ui.html 就可以访问了的。

结果呢。测试服务器装了nginx,我项目用docker-compose 写好了nginx的,服务器又只开放80 443。

所有就用在服务器的nginx上做了个转发,我docker里面的nginx端口改成了81。

服务器的nginx简单做了代理如下

 server {        listen 80;        server_name test.xxx.com ;        location / {              proxy_pass http://127.0.0.1:81;              proxy_set_header Host $http_host;              proxy_http_version 1.1;              proxy_set_header Upgrade $http_upgrade;              proxy_set_header Connection "upgrade";        }        }

重启nginx,输入地址 xxx/swagger-ui.html

懵逼了,弹出如下提示

Unable to infer base url. This is common when using dynamic servlet registration or when the API is behind an API Gateway. The base url is the root of where all the swagger resources are served. For e.g. if the api is available at http://example.org/api/v2/api-docs then the base url is http://example.org/api/. Please enter the location manually:

于是乎,百度总结出如下三个方案。还有说换版本的。

(1).把@EnableSwagger2注解加在主启动类
(2).主启动类加上@ComponentScan("swagger配置类所在包")
(3).将WebSecurityConfig与ScheduleConfig置于同一路径

挨个试了 都不行。最后一想到外层有个nginx,内层还有个nginx。会不会是转发除了问题。于是仔细分析,发现是缓存导致的。

更改后的nginx配置如下

外包nginx

 server {        listen 80;        server_name test.xxx.com ;        location / {              proxy_buffer_size 64k;              proxy_buffers 32 32k;              proxy_busy_buffers_size 128k;              proxy_pass http://127.0.0.1:81;              proxy_set_header Host $http_host;              proxy_http_version 1.1;              proxy_set_header Upgrade $http_upgrade;              proxy_set_header Connection "upgrade";        }        }

docker内的nginx

          location ~* ^(/v2|/webjars|/swagger-resources|/swagger-ui.html){             proxy_buffer_size 128k;             proxy_buffers   32 128k;             proxy_busy_buffers_size 128k;                 proxy_set_header Host $host;                 proxy_set_header  X-Real-IP  $remote_addr;                 proxy_set_header X-Forwarded-For $remote_addr;                 #proxy_set_header Host $host:$server_port;                 proxy_set_header X-Forwarded-Proto $scheme;                 proxy_set_header X-Forwarded-Port $server_port;                 proxy_pass http://backends;          }

重启,然后可以访问了。

来源:https://www.icode9.com/content-3-777901.html

(0)

相关推荐

  • Nginx keepalived 实现高可用,防盗链及动静分离配置,写得太好了!

    做积极的人,而不是积极废人! 每天 14:00 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解 ...

  • 前后端分离Nginx转发

    前后端分离中Nginx作为web前端容器,需要访问后端接口通常需要通过路径转发,直接访问后端API会造成跨域问题,配置文件如下 server { listen 80; server_name loca ...

  • 关于nginx加载配置文件的巨坑

    赶紧把博客写了,趁热打铁,不然怕晚上有些细节不记得 一.巨坑问题引入 今早前端开发又来追我一个问题,上月底29日问过(我还以为他完全忘记这事,或者悄咪咪地这问题自己解决了).说是他本地掉线上系统的登录 ...

  • 一胎时踩的坑,二胎时终于都避开了!

    元旦都过了,春节还会远么? 这不,我都开始囤年货了--必然不能忘了给宝宝们囤点必备品和消耗品哇! 都是刚需品,该买还是要买! 但最纠结的是什么值得买? 记得派派小的时候,我买过一台暖奶器,本来想的很好 ...

  • 北京砂石坑鸟调报告:昔日垃圾巨坑变身小鸟乐园

    砂石坑位于北京西五环晋元桥东南角,从上世纪50年代开始这里开始大量开采砂石,至90年代中期整整四十余年,形成了一个深30米.面积117公顷(1700多亩)的大坑,因为有地下水溢出,砂石坑停止开采后,这 ...

  • Spring Boot Security 国际化 多语言 i18n 趟过巨坑

    网上很多的spring boot国际化的文章都是正常情况下的使用方法 如果你像我一样用了Spring Security 那么在多语言的时候可能就会遇到一个深渊 Spring Security里面的异常 ...

  • 全屋定制是个巨坑?问清这几个点,商家都觉得你是内行

    成品衣柜和木工现做,正逐渐被市场淘汰,取而代之的是定制衣柜,尤其是全屋定制,因为能满足个性化需求,最大程度利用空间,特别火爆!但全屋定制也有很多坑,不懂行的人会被坑得很惨. 今天咱们就说说,全屋定制坑 ...

  • 购房火爆韭菜云集,文旅城再引争议,价值洼地还是旷世巨坑?

    这两天,咨询文旅城的粉丝不少,说是开发商房价打出94折的优惠,认为这里是价值洼地,想要去投资一套: 在头条君很火的重庆看房小分队,也发文称"文旅城又火了": 甚至前几天还传出文旅城 ...

  • 这8个厨卫装修巨坑的内幕,商家肯定不会告诉你

    都说建材市场水很深,忽悠小白已经成了家常便饭,专坑你不懂. 就算在装修前认真做足了功课,卯足了力气跟商家斗智斗勇,也很容易在一些隐蔽处掉坑,敌不过在建材市场混迹多年的商家的老奸巨猾. 花优质材料的钱, ...

  • 没人告诉你,基金定投有巨坑

    不要觉得基金定投是万能的,我最近看很多抖音财经博主讲定投,就是无脑投,没有一个配套的逻辑和方法,除了让伤害延迟到来外,没有其他任何作用. 因为定投不仅仅只有微笑曲线,还有一个悲伤曲线存在.而新基民大多 ...