每次更新时 AWS Elastic Beanstalk 都会降级 - 保持关闭状态

每次更新时 AWS Elastic Beanstalk 都会降级 - 保持关闭状态

当我更新实例时,我会使用 EB 命令行工具。我将实例推送到 CodeCommit git,然后使用命令部署代码eb deploy。几乎每次我这样做时,我的环境状态都会变为降级/严重,正在运行的实例会给出错误。Following services are not running: proxy.它会根据我的自动扩展策略(与健康状况相关)启动更多实例,有时在 2-3 个新实例之后,我会得到一个“正常”的实例

我的环境配置为64bit Amazon Linux 2016.09 v2.2.0 running PHP 7.0。它是自动负载平衡和自动扩展,在平均网络上。它在任何可用区域中运行 t1.micro,软件配置如下:日志发布: 在; 允许 URL fopen: 在; 显示错误: 离开; 文档根目录:/http/; 最大执行时间:60; 内存限制:256M; Zlib 输出压缩: 离开;

什么原因造成此情况?

答案1

检查您的/opt/elasticbeanstalk/hooks/appdeploy/post/01_monitor_httpd_pid.sh。请注意,01_monitor_httpd_pid.sh对您来说, 可能有不同的名称。

apache/httpd如果您不使用,则需要在其中更改代理检查nginx,如下所示:

#!/bin/bash
set -xe
/opt/elasticbeanstalk/bin/healthd-track-pidfile --proxy nginx

如果您正在使用apache/httpd,则表示您的 apache 运行时实例或进程存在问题。确保 pid 文件位于健康检查应在的位置。

答案2

我们可以在 .ebextensions 目录中设置一个文件,如下所示。当您看到错误时Following services are not running: proxy.

.ebextensions/01_fix_proxy.config 内容:

  "/opt/elasticbeanstalk/hooks/appdeploy/post/01_monitor_httpd_pid.sh":
  mode: "000755"
  owner: root
  group: root
  content: |
    #!/bin/bash
    set -xe
    /opt/elasticbeanstalk/bin/healthd-track-pidfile --proxy nginx

相关内容