当前位置: 首页 > 知识库问答 >
问题:

Spring引导昂首阔步UI不工作背后的nginx代理

艾星河
2023-03-14

我在docker容器中运行spring boot micro serivce,作为kubernetes吊舱运行。

当spring启动应用程序在本地运行时,swagger UI运行良好。

当部署到我们的kubernetes集群时,我们使用nginx将请求代理到pod。

我正在努力弄清楚如何让昂首阔步的用户界面与nginx一起工作。

到目前为止我尝试过的事情

在我的“ssl.conf”中,我尝试添加以下内容:;

location ~ ^/(webjars.*) {
    rewrite ^/(.*)$ /$1 break;
    proxy_pass https://gw-test-request:443;
}
 location ~ ^/(gw.*) {
    rewrite ^/(.*)$ /swagger-ui.html break;
    proxy_pass https://$1:443;
}

请注意,第二个位置有一个前缀,表示我们如何使用前缀gw命名微服务模块。

有了这个,当我进入时,它会试图装出昂首阔步的样子https:///gw-test但后来却默默地失败了。它不会加载我在本地尝试时所做的一切,因为我观察到了通过的网络请求

当它在本地工作时,我看到的网络调用;

当它在nginx后面时,我看到的网络呼叫;

任何帮助将不胜感激。

**编辑**

最后一个屏幕截图上显示的404是200秒,但它仍然没有加载Swigger UI。

**编辑**

正在使用的昂首阔步的配置;

@Configuration
@EnableSwagger2
public class SwaggerConfig {

@Bean
public Docket api() {
ApiInfo apiInfo = new ApiInfo(
    "<>",
    "<>",
    "<>",
    "<>",
    new Contact("<>", "<>", "<>"),
    "N/A",
    "N/A",
    new ArrayList<>());

return new Docket(DocumentationType.SWAGGER_2)
    .select()
    .apis(RequestHandlerSelectors.basePackage("<rest controller base package>"))
    .paths(PathSelectors.any())
    .build()
    .apiInfo(apiInfo);
}
}

共有1个答案

万俟炯
2023-03-14

这通常发生在您的swagger配置中的安全协议未配置为允许https时,默认协议仅允许超文本传输协议连接,因此您必须显式设置协议以包括https

在您昂首阔步的配置中,添加以下行

.protocols(newHashSet("http", "https"));

这会解决你的问题。

 类似资料:
  • 问题内容: 我想知道如何用昂扬的方式记录枚举。 根据JavaDoc 数据类型。请参阅文档以获取受支持的数据类型。如果数据类型是自定义对象,请设置其名称,或不设置任何名称。如果是枚举,请为枚举常量使用’string’和allowableValues。 但是我没有找到一些好的Java示例如何真正使用它,规范在这里。 第一服务 第二服务 输入项 天 输出量 pom.xml 您可以在此处查看结果。 我看到

  • 我试图用大摇大摆的方式来模拟REST API..我目前创建了nodejs项目,其中默认的js appreas是。/api/controllers/hello_world.js中的hello_world.js。 现在我想创建一个新的控制器,并将其引用到我的YAML,即来自SwaggerUI..我怎么做?任何链接都会很有用。

  • 数据类型。有关支持的数据类型,请参见文档。如果数据类型是自定义对象,请设置它的名称,或者不设置任何名称。对于枚举,使用'string'和allowableValues作为枚举常量。 但是我没有找到一些好的Java示例如何真正使用它,规范在这里。 你可以在这里看到结果。 我认为是个问题... 你知道吗?

  • 问题内容: 我正在尝试使用swagger定义post端点,但是不允许使用该参数: 当我跑步时,我得到这个: 我的规格有什么问题? 问题答案: 您可能正在混合使用OpenAPI / Swagger 2.0和OpenAPI 3.0语法。您的规格似乎是2.0,但是关键字是3.0功能。在2.0中,请求正文被定义为正文参数: 更多信息:描述请求正文

  • 我们正在为我们的Laravel REST API实现开发Swagger文档。几个POSTendpoint将使用CSV作为参数内容类型。 Swagger中是否有一种方法可以让“立即尝试”功能与CSV POST文件上传一起使用? 下面是我们的留档http://api.curvecompass.com/docs/#/ 我们的Laravel POST函数可以正确地与CSVendpoint一起工作,而不是与

  • 我正在用Swagger记录我的API,并将以下注释应用于我的所有REST控制器: 然而,我还想将Spring Boot Actuator(/health,/info)提供的endpoint包含在Swagger上(它们也包括在内),但是我似乎找不到一种方法来更改它们的默认描述、标记和标题以及其他Swagger属性。 有没有办法做到这一点?提前谢谢。