WAR

时间:2016-12-06 11:05:27

标签: java amazon-web-services nginx amazon-ec2 spring-boot

我正在尝试更改我的Elastic Beanstalk NGINX反向代理的client_max_body_size属性,以便允许上传更大的JPEG文件。因此,我将文件夹“.ebextensions”添加到我的WAR文件的根目录(WAR文件还包括一个Spring Boot应用程序),并添加了一个文件“.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”时,该文件不存在。

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

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

修改 我刚刚发现部署应用程序时,每次都会创建“proxy.conf”文件几秒钟,但几秒后它就会消失(在{/etc/nginx/conf.d/中用ls -lsa检查) “,请参阅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

1 个答案:

答案 0 :(得分:9)

经过几个小时的阅读文档后,我发现我错过了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配置文件。不使用"文件的目录:..."生成具有特定内容的文件的语法,即在" /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配置中。

  3. 希望这个答案可以节省别人花时间解决这个问题。