Amazon web services Docker Elastic Beanstalk ELB忽略了.ebextension

Amazon web services Docker Elastic Beanstalk ELB忽略了.ebextension,amazon-web-services,docker,nginx,amazon-elastic-beanstalk,Amazon Web Services,Docker,Nginx,Amazon Elastic Beanstalk,我正在通过CodePipeline将docker映像部署到使用弹性负载平衡器的Elastic Beanstalk 我有以下文件结构: .ebextensions nginx 形态d 弹性豆茎 nginx-config.conf 文件中包含修改,例如: sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 1

我正在通过CodePipeline将docker映像部署到使用弹性负载平衡器的Elastic Beanstalk

我有以下文件结构:

  • .ebextensions
    • nginx
      • 形态d
        • 弹性豆茎
          • nginx-config.conf
文件中包含修改,例如:

 sendfile        on;
        tcp_nopush          on;
        tcp_nodelay         on;
        keepalive_timeout   10;
        types_hash_max_size 2048;
        client_body_buffer_size 2000M;
我注意到我的配置没有粘住。当我连接到elasticbeanstalk创建的实例时,我的
/etc/nginx/conf.d/elasticbeanstalk/
不包含任何配置文件

我的问题是: 1) 为什么我的.ebextensions被忽略了? 2) 是否有其他方法可以修改nginx配置


顺便说一句,我的dockrun.aws.json和buildspec.yml都在执行。

对于可能遇到相同问题的任何人,下面是我如何解决它的……定制AMI

  • 转到EC2并创建一个实例
  • 在Community AMI选项卡中,查找elasticbeanstalk nginx 3启动实例并根据您的需要进行修改
  • 停止实例
  • 从停止的实例创建映像
  • 将ami放在Elastic Beanstalk配置部分中,在该部分中它请求容量

  • 我得去看管一下。不要尝试对/etc/nginx/nginx.conf进行任何更改。EBS将自动覆盖您在其中输入的任何内容。相反,将所有修改放在/etc/nginx/conf.d/somefile.conf中,这将覆盖/etc/nginx/nginx.conf中的任何内容。

    对于可能遇到相同问题的任何人,下面是我如何解决它的……定制AMI

  • 转到EC2并创建一个实例
  • 在Community AMI选项卡中,查找elasticbeanstalk nginx 3启动实例并根据您的需要进行修改
  • 停止实例
  • 从停止的实例创建映像
  • 将ami放在Elastic Beanstalk配置部分中,在该部分中它请求容量

  • 我得去看管一下。不要尝试对/etc/nginx/nginx.conf进行任何更改。EBS将自动覆盖您在其中输入的任何内容。相反,将所有修改放在/etc/nginx/conf.d/somefile.conf中,这些修改将覆盖/etc/nginx/nginx.conf中的任何内容。

    在过去几年中,通过Stackoverflow上发布的针对该问题的不同解决方案进行了工作,但未取得任何成功(如),我试图找出数据
    conf.d
    被实际来源覆盖的位置。我找到了文件夹
    /var/proxy/staging/nginx/conf.d/
    。我测试了它,并将我的自定义nginx conf文件复制到该文件夹中。它成功了。因此,您可以在Beanstalk上的多容器Docker设置实例上实现对nginx配置的更改,如下所示:

    #.ebextensions/00_nginx.config
    文件夹:
    “/tmp/custom.conf”:
    模式:“000644”
    所有者:root
    组:根
    内容:|
    客户最大尺寸为20M;
    容器命令:
    01_复制_配置:
    命令:“sudo cp/tmp/custom.conf/var/proxy/staging/nginx/conf.d/00_custom.conf”
    

    由于在
    /etc/nginx
    中替换整个
    conf.d
    时,nginx会以任何方式重新加载,因此无需在此处重新加载。

    在过去几年中,通过Stackoverflow上发布的针对该问题的不同解决方案(如)工作未取得任何成功后,我试图找出数据
    conf.d
    被实际来源覆盖的位置。我找到了文件夹
    /var/proxy/staging/nginx/conf.d/
    。我测试了它,并将我的自定义nginx conf文件复制到该文件夹中。它成功了。因此,您可以在Beanstalk上的多容器Docker设置实例上实现对nginx配置的更改,如下所示:

    #.ebextensions/00_nginx.config
    文件夹:
    “/tmp/custom.conf”:
    模式:“000644”
    所有者:root
    组:根
    内容:|
    客户最大尺寸为20M;
    容器命令:
    01_复制_配置:
    命令:“sudo cp/tmp/custom.conf/var/proxy/staging/nginx/conf.d/00_custom.conf”
    

    当整个
    conf.d
    /etc/nginx
    中被替换时,nginx无论如何都会被重新加载,因此这里不需要重新加载。

    我目前也遇到了同样的情况。我尝试了两种方法:通过
    .ebextensions
    中的yaml配置文件创建.conf,以及直接将nginx.conf文件放置在
    .ebextensions/nginx/conf.d
    中。两者都没有达到预期的效果。然后,我在部署期间一直关注着
    conf.d
    文件夹:我的.conf文件实际上是创建的,但是在部署的稍后阶段,.conf被放置在那里之后,整个
    conf.d
    文件夹会被重新创建。配置更改只会被删除,而不会被忽略。但是,我不知道如何解决这个问题。我目前也有同样的经历。我尝试了两种方法:通过
    .ebextensions
    中的yaml配置文件创建.conf,以及直接将nginx.conf文件放置在
    .ebextensions/nginx/conf.d
    中。两者都没有达到预期的效果。然后,我在部署期间一直关注着
    conf.d
    文件夹:我的.conf文件实际上是创建的,但是在部署的稍后阶段,.conf被放置在那里之后,整个
    conf.d
    文件夹会被重新创建。配置更改只会被删除,而不会被忽略。但不知道如何解决这个问题。