我在AWS Elastic Beanstalk上部署了一个Spring Boot应用程序。我正面临502严重网关错误。我从日志中找不到任何有用的东西
/var/log/nginx/error。日志
2019/02/10 02:12:54[错误]3257#0:*1连接()失败(111:连接被拒绝),连接到上游时,客户端:。。。。,服务器:,请求:“GET/HTTP/1.1”,上游:http://127.0.0.1:5000/主持人:“。。。。"
我没有任何用于前端的html文件。我只想上传并部署api,以共享来自swagger ui的文档。
我的问题是我的Java
版本与我使用Elastic Beanstalk运行的平台不匹配,即使是我的服务器。端口
已打开5000
。我的Java版本是11,我的平台只有针对Amazon Linux的Java 8。所以在我的basepom中将其改为8。xml
修复了它。
发生这种情况是因为应用程序负载均衡器默认指向EC2实例中nginx服务器的端口80。默认情况下,nginx配置为将请求转发到Port 5000,而out应用服务器运行在Port 8080上。
默认Nginx配置
预期的Nginx配置
PORT
的环境属性并将其指向8080来修复此问题参考AWS文件:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-se-nginx.html
解决此问题的另一种方法是使用server.port属性在Spring引导应用程序中将端口设置为5000。
这是因为服务器正在监听5000,在应用程序中添加了“server.port=5000”。物业公司解决了这个问题。
免责声明*我知道对此有很多问题。我已经看了它们并应用了答案,但它仍然不起作用。 我在Elastic Beanstalk上部署了一个Spring Boot应用程序。jar(不是war)文件。我正在使用Java1.8。我更改了申请表。属性到服务器。端口=5000。我还打开了我的ec2实例在0.0.0.0/32上用于端口5000的安全组。当我的elastic beanstalk环境加载时,状态变为降级。
任何帮助都将不胜感激,我现在已经度过了几个不眠之夜。
我将在AWS上构建微服务的体系结构,我想请你们澄清我的疑问。 我目前的一般概念 我想使用API网关,它公开在Elastic Beanstalk中运行的MicroDevices API。我想将Elastic Beanstalk放置在VPC中,而不直接从Internet访问其实例。 问题 弹性豆茎在应用程序创建时获得子域。这个子域应该由集成类型为AWS服务的API网关在操作配置中使用-我说得对吗? 什
我需要将一些配置传递给我的Spring Boot应用程序,它是使用弹性豆茎部署的。 不幸的是,我需要在不重新编译工件的情况下更新这些变量,所以我想使用带下划线符号的大写字母(http://docs . AWS . Amazon . com/elastic beanstalk/latest/DG/Java-configuration . html)。不幸的是,配置要复杂得多,事实上我正在尝试将对象数
配置验证异常:AWS Elastic Beanstatk无法与Amazon EC2通信以确定是否为Elastic Load均衡创建自定义安全组。 在创建AWS Elastic Beanstalk应用程序时,我在尝试继续“查看和启动”时遇到了这个错误。我是新手。请帮忙。
有人知道是否有可能将现有的AWS弹性豆茎环境更改为应用程序负载平衡器(而不是经典的负载平衡器)。 据我所知,只有应用程序ELB可以被AWS WAF和DDOS“屏蔽”保护,所以任何现有的EB应用程序都不能利用这些特性,因为他们有经典的ELB。