连接到上游时,connect()失败(111:连接被拒绝)。Java(SparkJava)Amazon Elastic

Chr*_*ani 6 java nginx amazon-web-services spark-java amazon-elastic-beanstalk

尝试部署我的第一个应用程序(后端)。但是我遇到了502 Bad Gateway类型的错误。

2016/05/03 14:46:14 [error] 2247#0: *19 connect() failed (111: Connection refused) while connecting to upstream, client: 172.31.43.183, server: , request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:5000/", host: "myHost.eu-west-1.elasticbeanstalk.com"
2016/05/03 14:50:23 [error] 2566#0: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 172.31.8.36, server: , request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:5000/", host: "myHost.eu-west-1.elasticbeanstalk.com"
2016/05/03 14:55:04 [error] 2566#0: *61 connect() failed (111: Connection refused) while connecting to upstream, client: 172.31.43.183, server: , request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:5000/", host: "myHost.eu-west-1.elasticbeanstalk.com"
Run Code Online (Sandbox Code Playgroud)

我使用在端口4567上启动的后端框架SparkJava。因此,我扩展了Nginx的配置(nginx / 1.8.1)。但是问题始终存在。

server {
    listen 4567 default_server;
    listen [::]:4567 default_server ipv6only=on;
}
Run Code Online (Sandbox Code Playgroud)

有关信息:我的后端与数据库通信(RDS aws亚马逊)

Rav*_*ezu 5

从您的日志中:upstream: "http://127.0.0.1:5000/"我看到,nginx 正在尝试连接到同一台机器上的 5000 端口,但它拒绝连接。什么在 5000 端口上运行?您可能需要对此进行调查。

  • 我接受了 Ravis 的回答,因为他是对的。默认情况下,Elastic Beanstalk 配置 nginx 代理服务器将请求转发到端口 5000 上的应用程序。现在我的应用程序正在侦听端口 4567。因此导致我收到错误。为了解决这个问题,我只需要通过将 PORT 系统属性设置为我的应用程序正在侦听的端口来替换默认端口。 (5认同)
  • 谢谢你,你节省了我很多时间。我的情况是,我正在使用 Spring Boot 应用程序,该应用程序在本地运行,并使用其他一些端口(例如 8888),但从 Stackdriver 日志记录中,我看到上游正在等待端口 8080。所以我更改了我的应用程序端口从8888更改为8080并部署回部署成功的App Engine服务。谢谢你的线索。 (3认同)