我在AWS elastic-beanstalk上托管了我的Spring启动应用程序,但是当我尝试使用公共URL访问它时,它给了我502网关错误。 在日志中,我可以看到以下错误: 2017/08/05 20:10:33 [错误] 22965#0:* 157 connect()失败(111:拒绝连接) 连接到上游,客户端:XXX.68.241.XXX,服务器:,请求:" GET /swagger-ui.html HTTP / 1.1",上游:" http://127.0.0.1:5000/swagger-ui.html",主持人: " XXXXXXXX-env.XXX.us-west-2.elasticbeanstalk.com"
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
upstream tomcat_servers{
ip_hash;
server 127.0.0.1:5000;
keepalive 256;
}
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
}
答案 0 :(得分:0)
我会仔细检查运行Spring启动应用程序的端口。
默认情况下,Spring Boot应用程序将侦听端口8080. Elastic Beanstalk假定应用程序将侦听端口5000.有两种方法可以解决此差异:更改Elastic Beanstalk配置为使用的端口,或更改端口Spring Boot应用程序监听。对于这篇文章,我们将更改Spring Boot应用程序侦听的端口。
最简单的方法是在Elastic Beanstalk环境中指定SERVER_PORT环境变量并将值设置为5000.(配置属性名称为server.port,但Spring Boot允许您指定更多环境变量 - 友好的名字)。