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

AWS Elastic Beanstalk CLI 安装错误

text AWS Elastic Beanstalk

HTTPS Elastic Beanstalk (AWS) 到 Android

AWS Elastic Beanstalk 无法担任角色

AWS Elastic Beanstalk