Tom*_*Tom 4 java nginx amazon-ec2 amazon-web-services spring-boot
我正在尝试更改client_max_body_size我的Elastic Beanstalk NGINX反向代理的属性,以允许上传更大的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;
Run Code Online (Sandbox Code Playgroud)
我通过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"文件几秒钟,但几秒后它就会消失(ls -lsa在"/etc/nginx/conf.d/"中查看,请参阅"elasticbeanstalk"目录和"healthd_http.conf"的时间戳为13:34,"proxy.conf"的时间戳为13:43)
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
Run Code Online (Sandbox Code Playgroud)
几秒后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
Run Code Online (Sandbox Code Playgroud)
Tom*_*Tom 10
经过几个小时的阅读文档,我发现我错过了Elastic Beanstalk Java SE平台官方AWS文档的一些重要部分(请参阅http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-se -platform.html).
绝对是我的错误:我使用了错误的文件扩展名,文件夹".ebextensions"中的文件扩展名必须是".conf"而不是 ".config".
至少对于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配置自动包含.
希望这个答案可以节省别人花在我身上的时间.
| 归档时间: |
|
| 查看次数: |
3120 次 |
| 最近记录: |