WAR中忽略Elastic Beanstalk .ebextensions

我正在尝试更改Elastic Beanstalk NGINX反向代理的client_max_body_size属性,以允许上传更大的JPEG文件。 因此,我在我的WAR文件(WAR文件也包括一个Spring Boot应用程序)的根目录中添加了“.ebextensions”文件夹,并在文件“.ebextensions / 01_files.config”中添加了以下内容:

 files: "/etc/nginx/conf.d/proxy.conf" : mode: "000755" owner: root group: root content: | client_max_body_size 20M; 

我通过Travis-CI将WAR文件部署到Elastic Beanstalk。 但是,Elastic Beanstalk似乎忽略了这个文件,因为使用文件大小(例如2MB)上传不起作用,当用SSH连接到实例并查找“/etc/nginx/conf.d/proxy.conf”文件时不存在。

我已经用YAMLvalidation器成功validation了上述内容。 我知道,有很多相关的问题,但不是那些似乎解决我的问题。 我还检查了“.ebextensions / 01_files.config”是否包含在根目录下的WAR文件中。 而当我检查“/ tmp / eb_extracted_jar”时,文件“.ebextensions / 01_files.config”也存在正确的内容。 我甚至无法在“/var/log/cfn-init.log”中find任何错误。 我注意到,在部署过程中,“/etc/nginx/conf.d/”文件“proxy.conf”出现了几秒钟,但之后它已被删除。

由于通过Travis-CI部署到Elastic Beanstalk,是否会出现此问题? 还是我错过了其他重要的东西?

编辑:我只是认识到,“proxy.conf”文件每次创build应用程序时,几秒钟,但几秒钟后消失(在ls -lsa中检查“/etc/nginx/conf.d/ “,请查看13:34”elasticbeanstalk“目录和”healthd_http.conf“和13:43”proxy.conf“的时间戳)

 4 drwxr-xr-x 3 root root 4096 6. Dec 13:43 . 4 drwxr-xr-x 4 root root 4096 6. Dec 13:34 .. 4 drwxr-xr-x 2 root root 4096 6. Dec 13:34 elasticbeanstalk 4 -rw-r--r-- 1 root root 148 6. Dec 13:34 healthd_http.conf 4 -rwxr-xr-x 1 root root 26 6. Dec 13:43 proxy.conf 

几秒钟后ls -lsa “/etc/nginx/conf.d/”:

 4 drwxr-xr-x 3 root root 4096 6. Dec 13:44 . 4 drwxr-xr-x 4 root root 4096 6. Dec 13:44 .. 4 drwxr-xr-x 2 root root 4096 6. Dec 13:44 elasticbeanstalk 4 -rw-r--r-- 1 root root 148 6. Dec 13:44 healthd_http.conf 

在阅读了几个小时的文档之后,我发现我错过了Elastic Beanstalk Java SE平台官方AWS文档的一些重要部分(请参阅http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-se -platform.html )。

  1. 肯定是我的错误:我使用了错误的文件扩展名,文件夹“.ebextensions”中的文件扩展名必须是“.conf”,而不是 “.config”。

  2. 至少对于Java SE平台:可以直接在“.ebextensions”目录中添加NGINX配置文件,而不使用“files:…”语法生成具有特定内容的文件,即在“ /etc/nginx/conf.d/proxy.conf“只需添加”.ebextension / nginx / conf.d / proxy.conf“,内容为client_max_body_size 20M; 直。 随后,“proxy.conf”将被部署到“/etc/nginx/conf.d/proxy.conf”,并被默认的NGINX配置自动包含在内。

希望这个答案可以节省别人花时间弄清楚的时间。