502 Bad Gateway错误 - Cloud Foundry中的jHipster Gateway

时间:2017-07-09 21:21:29

标签: jhipster pivotal-cloud-foundry jhipster-registry

我使用jhipster subgenerator为Cloud Foundry在Cloud Foundry中部署了jHipster(v2.3)。此后,Gateway也成功部署。在部署过程期间或之后,日志跟踪中没有出现任何错误或问题,并且已在CF中创建路由。

Gateway的图片已在jHipster Registry UI

中注册

单击上面显示的G​​ateway的实例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:password@jhipsterregistry.XXXXXX/eureka

日志没有任何迹象表明可能出现的问题或我缺少的参数。

如果我部署一个简单的微服务并通过Postman进行REST调用(绕过网关,那么请求就会很好。这似乎只是Gateway的一个问题。

有人可以提供建议或提供意见吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

问题已经解决了。

Cloud Foundry端口对于HTTP只能是80。

  • 从GitHub阅读Spring Cloud Config Project的应用程序包含服务器端口,硬编码为8082,这就产生了问题。一旦我评论了这个,网关就可以访问了。

在更改帮助解决问题的Cloud Config Project之前,我确实尝试通过设置

来覆盖该属性
spring.cloud.config.overrideSystemProperties = false
spring.cloud.config.overrideNone = true
在manifest.yml中

但是没有用。

一个观察结果是,配置中定义的 server.port 属性捆绑为应用程序(bootstrap.yml,application.yml)本身的一部分 - 而不是Spring Cloud Config 在运行时被覆盖因此这些微服务没有遇到这个问题。