我一直在使用EBS而没有任何问题。今天,我已经添加了负载均衡器,并使用以下配置上传了我的包:
files:
"/etc/nginx/conf.d/proxy.conf":
mode: "000755"
owner: root
group: root
content: |
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
container_commands:
01_reload_nginx:
command: "service nginx reload"
但是,当我尝试启动软件包时,出现以下错误:
应用程序部署在2016-11-23T14:07:40Z失败,退出状态 7和错误:container_command 01_reload_nginx in .ebextensions / environment.config失败。
怎么回事?
这些是日志:
[eb-cfn-init]:在目录中成功执行挂钩 的/ opt / elasticbeanstalk /钩/ appdeploy /预。 [EB-CFN-INIT]: [2016-11-23T16:09:31.193Z] INFO [2680] - [应用程序部署 ttttttt @ 4 / StartupStage0 / EbExtensionPostBuild]:开始活动...... [eb-cfn-init]:[2016-11-23T16:09:31.506Z] INFO [2680] - [申请书] 部署 TTTTTTT @ 4 / StartupStage0 / EbExtensionPostBuild /红外线EmbeddedPostBuild] :开始活动...... [eb-cfn-init]:[2016-11-23T16:09:31.507Z] INFO [2680] - [应用程序部署 ttttttt @ 4 / StartupStage0 / EbExtensionPostBuild / Infra-EmbeddedPostBuild / postbuild_0_My_First_Elastic_Beanstalk_Application]:开始活动... [eb-cfn-init]:[2016-11-23T16:09:31.842Z] INFO [2680] - [应用程序部署 TTTTTTT @ 4 / StartupStage0 / EbExtensionPostBuild /红外线EmbeddedPostBuild / postbuild_0_My_First_Elastic_Beanstalk_Application /命令 01_reload_nginx]:开始活动... [eb-cfn-init]: [2016-11-23T16:09:31.868Z] INFO [2680] - [应用程序部署 TTTTTTT @ 4 / StartupStage0 / EbExtensionPostBuild /红外线EmbeddedPostBuild / postbuild_0_My_First_Elastic_Beanstalk_Application /命令 01_reload_nginx]:活动执行失败,原因是: (ElasticBeanstalk :: ExternalInvocationError)[eb-cfn-init]: [eb-cfn-init]:[eb-cfn-init]:[2016-11-23T16:09:31.868Z] INFO [2680] - [应用程序部署ttttttt @ 4 / StartupStage0 / EbExtensionPostBuild / Infra-EmbeddedPostBuild / postbuild_0_My_First_Elastic_Beanstalk_Application / Command 01_reload_nginx]:活动失败。 [EB-CFN-INIT]: [2016-11-23T16:09:31.868Z] INFO [2680] - [应用程序部署 ttttttt @ 4 / StartupStage0 / EbExtensionPostBuild / Infra-EmbeddedPostBuild / postbuild_0_My_First_Elastic_Beanstalk_Application]:活动失败。 [eb-cfn-init]:[2016-11-23T16:09:31.868Z] INFO [2680] - [应用程序部署 TTTTTTT @ 4 / StartupStage0 / EbExtensionPostBuild /红外线EmbeddedPostBuild] :活动失败。 [eb-cfn-init]:[2016-11-23T16:09:31.884Z]信息 [2680] - [应用程序部署 ttttttt @ 4 / StartupStage0 / EbExtensionPostBuild]:活动失败。 [eb-cfn-init]:[2016-11-23T16:09:31.884Z] INFO [2680] - [申请书] 部署ttttttt @ 4 / StartupStage0]:活动失败。 [EB-CFN-INIT]: [2016-11-23T16:09:31.884Z] INFO [2680] - [应用程序部署 ttttttt @ 4]:已完成活动。结果:[eb-cfn-init]:应用程序 部署 - 命令CMD-SelfStartup失败
答案 0 :(得分:0)
很可能你的NGINX配置文件坏了,并且在NGINX重新加载时没有通过测试。在服务重新加载期间,NGINX首先检查您的配置文件,如果配置正确,则向NGINX进程发送HUP信号,该进程正常关闭旧工作人员并使用新配置启动新工作程序。
为了验证您的配置文件,您可以使用以下命令:
/usr/bin/nginx -t -c ~/mynginx.conf
-t
=不运行,只测试配置文件。 NGINX检查配置是否有正确的语法,然后尝试打开配置中引用的文件。
-c filename
=您的配置文件位置(如果不是默认值)
您应该能够使用以下命令测试您的配置(取决于您所使用的操作系统):
service nginx configtest
第一种变体是首选,因为它还会在NGINX配置中打印任何信息,警告和错误消息。
希望这有帮助。
答案 1 :(得分:0)
这很有趣,因为我们的弹性beanstalk部署昨天也在.ebextensions上失败了。它工作一小时后......
AWS在同一时间部署了新版本的EB和S3 ...... https://aws.amazon.com/releasenotes/6845489088399156 https://aws.amazon.com/releasenotes/8532186109690530
我想知道AWS是否有问题?
答案 2 :(得分:0)
我遇到了完全相同的问题,在平台升级期间发生了。我联系了AWS支持部门:他们说他们无法复制,但有一条非常有趣的信息可以防止这种情况发生。
但是,[命令:“sudo service nginx reload”]不是必需的,因为nginx服务会在每次成功部署后自动重启。
所以你可以删除
container_commands:
01_reload_nginx:
command: "service nginx reload"
脚本的一部分,因此您永远不会有重新加载失败。
答案 3 :(得分:0)
我也面临着类似的问题。有几个
1)我的配置中存在重复项,这引起了问题。直接在命令行上运行命令向我显示了问题
service nginx restart
nginx: [emerg] "keepalive_timeout" directive is duplicate in
/etc/nginx/conf.d/nginx.custom.conf:3
nginx: configuration file /etc/nginx/nginx.conf test failed
因此删除该条目很有帮助。
2)您可以尝试重新启动,而无需重新加载。
command: "service nginx restart"
答案 4 :(得分:0)
我在用Java代码Nginx遇到同样的问题。
container_commands:
01_reload_nginx:
command: "service nginx reload"
在我添加的代码中
container_commands:
01_reload_nginx:
command: "sudo service nginx reload"
sudo并解决了此错误,成功完成了部署。