502 Ошибка неверного шлюза - шлюз jHipster в Cloud Foundry

Я развернул jHipster (v2.3) в Cloud Foundry, используя подгенератор jhipster для облачного литейного производства. После этого был успешно развернут шлюз. Во время или после процесса развертывания в журнале трассировки не обнаружено ошибок или проблем, а маршруты были созданы в CF.

Изображение шлюза, зарегистрированное в пользовательском интерфейсе реестра jHipster

Щелкнув URL-адрес экземпляра для шлюза, показанного выше, я получаю следующую ошибку:

502 Bad Gateway: зарегистрированной конечной точке не удалось обработать запрос.

Соответствующий журнал в Gateway выглядит примерно так:

 "GET /favicon.ico HTTP/1.1" 502 0 67 "http://XXXXXXX/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36" 10.146.54.251:50172 10.146.54.148:62452 x_forwarded_for:"10.23.3.122, 10.146.54.251" x_forwarded_proto:"http" vcap_request_id:f63848c7-c58f-47cf-6c5a-cabf007dcc31 response_time:0.003393796 app_id:1b4faa60-05ec-41d7-a075-fe391e688739 app_index:0

Соответствующие журналы реестра приведены ниже:

2017-07-09T17:12:41.961-04:00 [RTR/3] [OUT]  - [09/07/2017:21:12:41.958 +0000] "PUT /eureka/apps/GATEWAY/bb95da05-b1c5-46b5-4718-463f8022fd36:Gateway:mbo-gateway-2.0.0:8082?status=UP&lastDirtyTimestamp=1499633621406 HTTP/1.1" 200 0 0 "-" "Java-EurekaClient/v1.4.10" 10.146.54.243:46930 10.146.54.133:64594 x_forwarded_for:"10.146.54.148, 10.146.54.243" x_forwarded_proto:"http" vcap_request_id:85431f6c-a916-45a5-7498-2fe012ae2338 response_time:0.002340557 app_id:17cfd70b-8fcd-4d15-bac7-cd4a5b73a976 app_index:0

Файл application-cloudfoundry.yml выглядит так:

eureka:
instance:
    prefer-ip-address: false
    hostname: ${vcap.application.uris[0]}
    nonSecurePort: 80
client:
    enabled: true
    healthcheck:
        enabled: true
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
        defaultZone: http://username:[email protected]/eureka

Журналы не дают никаких указаний на то, что может пойти не так или какой параметр мне не хватает.

Если я развертываю простой микросервис и выполняю вызовы REST через Postman (минуя шлюз, запросы обрабатываются нормально. Похоже, это проблема только со шлюзом.

Может кто-нибудь посоветовать или предоставить информацию?

Большое спасибо!


person barsakus    schedule 09.07.2017    source источник


Ответы (1)


Проблема решена.

Порт Cloud Foundry может быть только 80 для HTTP.

  • Приложения, читающие Spring Cloud Config Project с GitHub, содержали порт сервера, жестко закодированный на 8082, что создавало проблему. Как только я это закомментировал, шлюз стал доступен.

Перед изменением проекта Cloud Config, который помог решить проблему, я попытался переопределить свойство, установив

spring.cloud.config.overrideSystemProperties = false
spring.cloud.config.overrideNone = true

в manifest.yml, но это не сработало.

Одно наблюдение заключается в том, что приложения, имеющие свойство server.port, определенное в конфигурации, объединенной как часть самого приложения (bootstrap.yml, application.yml), а не Spring Cloud Config , действительно переопределяются во время выполнения, и, следовательно, эти микросервисы не сталкивались с этой проблемой.

person barsakus    schedule 10.07.2017