AWS Elastic Beanstalk:nginx 重新加载失败
Posted
技术标签:
【中文标题】AWS Elastic Beanstalk:nginx 重新加载失败【英文标题】:AWS Elastic Beanstalk: nginx reload failed 【发布时间】:2019-07-26 07:15:27 【问题描述】:我已根据this article 向我的 Elastic Beanstalk 环境提供 nginx 配置。我的应用程序位于 Docker 容器中。问题是环境重新加载nginx失败。
这是我的配置文件:
files:
"/etc/nginx/conf.d/proxy.conf" :
mode: "000644"
owner: root
group: root
content: |
client_max_body_size 500M;
container_commands:
01_reload_nginx:
command: "sudo service nginx reload"
这会导致失败(/var/log/eb-activity.log
之后):
EmbeddedPostBuild/postbuild_0_audio_explorer] : Starting activity...
[2019-03-04T21:45:01.064Z] INFO [3274] - [Application deployment app-8a62-190304_223307@1/StartupStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_audio_explorer/Command 01_reload_nginx] : Starting activity...
[2019-03-04T21:45:01.100Z] INFO [3274] - [Application deployment app-8a62-190304_223307@1/StartupStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_audio_explorer/Command 01_reload_nginx] : Activity execution failed, because: (ElasticBeanstalk::ExternalInvocationError)
[2019-03-04T21:45:01.100Z] INFO [3274] - [Application deployment app-8a62-190304_223307@1/StartupStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_audio_explorer/Command 01_reload_nginx] : Activity failed.
[2019-03-04T21:45:01.100Z] INFO [3274] - [Application deployment app-8a62-190304_223307@1/StartupStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_audio_explorer] : Activity failed.
[2019-03-04T21:45:01.100Z] INFO [3274] - [Application deployment app-8a62-190304_223307@1/StartupStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild] : Activity failed.
[2019-03-04T21:45:01.122Z] INFO [3274] - [Application deployment app-8a62-190304_223307@1/StartupStage0/EbExtensionPostBuild] : Activity failed.
[2019-03-04T21:45:01.122Z] INFO [3274] - [Application deployment app-8a62-190304_223307@1/StartupStage0] : Activity failed.
[2019-03-04T21:45:01.122Z] INFO [3274] - [Application deployment app-8a62-190304_223307@1] : Completed activity. Result:
Application deployment - Command CMD-Startup failed
当我删除部分时:
container_commands:
01_reload_nginx:
command: "sudo service nginx reload"
部署顺利。
有什么想法吗?如何获取有关该命令究竟出了什么问题的信息?如果我 ssh 到我的实例,我可以毫无问题地执行命令。
【问题讨论】:
但是你需要提供整个配置,而不是一行 我不认为sudo service nginx reload
是必要的。只需将其永久删除。不知道为什么会失败
@NeverBe 这就是整个配置。我还没有其他任何东西,我想先找出解决此问题的方法。
@brocknz 在我更新后,例如client_max_body_size
如果我想加载新配置,我很确定 nginx 重新加载是强制性的。尽管在创建环境时可能不需要它。如果我在创建 env 然后部署后添加它,命令再次失败。我想看看为什么命令失败。另一个提到 01_reload_nginx
仅指向粘贴的日志。
@LukaszTracewski 是的,但是弹性 beanstalk 部署过程不会为您重新加载 nginx 吗?您是否尝试在后续部署中更改 client_max_body_size
并测试更改是否已应用?
【参考方案1】:
弹性 beanstalk 部署过程将为您执行 nginx 重新加载,因此您可以将其从脚本中永久删除并避免错误。弄清楚命令失败的确切原因只是学术性的
【讨论】:
我遇到的问题是,当我轮询文件夹 /etc/ngingx/conf.d 时,我看到我的 .ebextensions 中的文件出现了......但随后某些东西完全删除了 nginx 并重新安装它所以我的文件在应用程序启动时被删除。有什么想法吗?以上是关于AWS Elastic Beanstalk:nginx 重新加载失败的主要内容,如果未能解决你的问题,请参考以下文章
AWS Elastic Beanstalk CLI 安装错误