Я использую пружинную загрузочную микросервису в моем док-контейнере, работающем как стручок кубернетеса.
Интерфейс swagger работает нормально, когда приложение весенней загрузки запускается локально.
При развертывании в нашем кластере kubernetes мы обращаемся к нему с помощью nginx, который передает запросы к модулю.
Я изо всех сил пытаюсь выяснить, как заставить пользовательский интерфейс Swagger работать с 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.
С этим, этопытается загрузить swagger, когда я вхожу в https: /// gw-test, но затем молча терпит неудачу.Он не загружает все, что делает, когда я пытался локально, поскольку я наблюдал за сетевыми запросами, которые проходят.
Сетевые вызовы, которые я вижу, когда он работает локально;
Сетевые вызовы, которые я вижу, когда он находится за nginx;
Любая помощь будет принята с благодарностью.
** Edit **
404, отображаемые на последнем скриншоте, оказались 200s, но все равно не загружает пользовательский интерфейс.
** Edit **
Используемая конфигурация чванства;
@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);
}
}