amazon-web-services – 为什么我得到ElasticBeanstalk :: ExternalInvocationError?

前端之家收集整理的这篇文章主要介绍了amazon-web-services – 为什么我得到ElasticBeanstalk :: ExternalInvocationError?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我的应用程序构建在RubyOnRails上,并使用乘客部署为弹性beanstalk应用程序,我正在尝试将标头添加Nginx服务器并重新启动它,这是我的配置文件,来自aws弹性beanstalk的.ebextensions文件夹中的脚本:

packages: 
    yum:
        Nginx: [] 

files:
    "/etc/Nginx/conf.d/webapp.conf" :
        mode: "000644"
        owner: root
        group: root
        content: |
            server {

                location /assets {
                  alias /var/app/current/public/assets;
                  gzip_static on;
                  gzip on;
                  expires max;
                  add_header Cache-Control public;
                }

                location /public {
                  alias /var/app/current/public;
                  gzip_static on;
                  gzip on;
                  expires max;
                  add_header Cache-Control public;
                }

            }

# This reloads the server,which will both make the changes take affect and makes sure the config is valid when you deploy
container_commands:
  01_reload_Nginx:
    command: "sudo service Nginx reload"

但是我收到了这个错误

[2017-12-13T06:23:48.635Z] ERROR [17344] : Command CMD-AppDeploy Failed!
[2017-12-13T06:23:48.635Z] INFO  [17344] : Command processor returning results: 
{"status":"FAILURE","api_version":"1.0","results":[{"status":"FAILURE","msg":"container_command 01_reload_Nginx in .ebextensions/01_elastic_beanstalk_webapp.config Failed. For more detail,check /var/log/eb-activity.log using console or EB CLI","returncode":7,"events":[]}]}

/var/log/eb-activity.log:

[2017-12-13T06:23:48.584Z] INFO  [17344] - [Application update fix-command-Nginx-reload-hope@2/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_myapp_website/Command 01_reload_Nginx] : Starting activity...
[2017-12-13T06:23:48.619Z] INFO  [17344] - [Application update fix-command-Nginx-reload-hope@2/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_myapp_website/Command 01_reload_Nginx] : Activity execution Failed,because:  (ElasticBeanstalk::ExternalInvocationError)


[2017-12-13T06:23:48.619Z] INFO  [17344] - [Application update fix-command-Nginx-reload-hope@2/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_myapp_website/Command 01_reload_Nginx] : Activity Failed.

虽然如果我ssh到实例并执行sudo服务Nginx重新加载它将正常执行..
任何的想法?

编辑

$cat /proc/version
Linux version 4.9.43-17.39.amzn1.x86_64 (mockbuild@gobi-build-64011) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Fri Sep 15 23:39:41 UTC 2017

部署命令:

eb deploy my-app -v

请求资产的标题

Connection: keep-alive
Content-Encoding: gzip
Content-Type: application/x-javascript
Date: Fri,24 Aug 2018 11:03:50 GMT
ETag: W/"12cd8ea0-20db3"
Last-Modified: Mon,31 Dec 1979 04:08:00 GMT
Server: Nginx/1.12.1
Transfer-Encoding: chunked
Via: 1.1 8cc9957dff77c27e9931ab0aaf344ec9.cloudfront.net (CloudFront)
X-Amz-Cf-Id: 0NlE-FiGgzczadHYeK7HMMsDsGRmaB8Sefvo89phHWw3LSx01t5rgQ==
X-Cache: Miss from cloudfront

缺少标题

   access-control-max-age: 3000
   age: 48214

服务器上的更新conf文件

$cat /etc/Nginx/conf.d/webapp.conf
server {

    location /assets {
      alias /var/app/current/public/assets;
      gzip_static on;
      gzip on;
      expires max;
      add_header Cache-Control public;
      add_header 'Access-Control-Allow-Origin' '*';
    }

    location /public {
      alias /var/app/current/public;
      gzip_static on;
      gzip on;
      expires max;
      add_header Cache-Control public;
      add_header 'Access-Control-Allow-Origin' '*';
    }

}

编辑

service Nginx configtest结果:

$sudo service Nginx configtest
Nginx: the configuration file /etc/Nginx/Nginx.conf Syntax is ok
Nginx: configuration file /etc/Nginx/Nginx.conf test is successful
最佳答案
命令:“sudo service Nginx reload”不是必需的,因为Nginx服务在每次成功部署后自动重启.您可以从配置文件删除它.

您可能会遇到CDN服务到期的延迟,请尝试刷新缓存或直接对EB网址进行测试.

猜你在找的Nginx相关文章