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

8
尝试部署我的第一个应用程序(后端)。但是我遇到了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"

我使用SparkJava作为我的后端框架,它在4567端口启动。因此,我扩展了Nginx(nginx/1.8.1)的配置。但问题仍然存在。

server {
    listen 4567 default_server;
    listen [::]:4567 default_server ipv6only=on;
}

提供信息:我的后端与数据库(RDS aws amazon)通信

1个回答

10

根据您的日志:upstream: "http://127.0.0.1:5000/",我看到nginx试图连接同一台机器上的5000端口,但它拒绝了连接。5000端口上运行着什么?您可能需要查看一下。


1
谢谢你的回答。 最终我选择了一个TomCat服务器。 - Christian Amani
1
@ChristianAmani,如果你选择了TomCat,为什么要接受Ravi的回答呢? - BooBailey
8
我接受了Ravis的回复,因为他是正确的。默认情况下,Elastic Beanstalk会配置nginx代理服务器将请求转发到端口5000上的应用程序。现在我的应用程序正在监听4567端口,这导致我收到了错误信息。为了解决这个问题,我只需要通过设置PORT系统属性为应用程序正在侦听的端口来替换默认端口即可。 - Christian Amani
3
谢谢你,你节省了我很多时间。我的情况是我有一个Spring Boot应用程序,在本地以8888端口运行,但从Stackdriver日志中我看到上游期望的是8080端口。因此,我将我的应用程序端口从8888更改为8080,并成功部署到应用引擎服务。感谢你提供的线索。 - Indrajeet Gour

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接