问题描述
我正在尝试上载在Linux 2 Coretto 11环境中运行的Java / Spring Boot应用程序。上传独立的JAR文件时,一切正常,但是我开始创建应用程序捆绑包,以便可以配置环境,尤其是client_max_body_size
。
该应用似乎正在启动,但随后发生了一些错误,并且没有太多信息(logs)。在EB控制台中,我不断收到错误消息:在中止部署期间,某些实例可能已部署了新的应用程序版本。为确保所有实例都运行相同的版本,请重新部署相应的应用程序版本。
我以.zip文件的形式上传了捆绑软件-它包含JAR,procfile和包含配置文件(〜/ .ebextensions / 01_files.config)的.ebextensions目录,所有这三个文件都位于根目录中的zip文件。后两个如下所示:
procfile:web: java -Dfile.encoding=UTF-8 -xms2g -Xmx2g -jar DocumentSummarizer-1.0-SNAPSHOT.jar
该配置文件的YAML缩进正确(2个空格)。
我觉得我已经尝试过StackOverflow和Amazon文档中的所有变体来实现此目标,所以我现在只是在脑海里跳动。任何帮助将不胜感激。
更新:
u / marcin的答案是正确的(Nginx设置必须位于.platform / Nginx / conf.d / myNginx.conf中)。在那之后我处理了一段时间的第二个问题是值之后没有分号。我认为只有在您有多个值的情况下才有必要,但是除非每个值后面都有一个(即client_max_body_size 20MB;
),否则它将无法正常工作。
解决方法
一个可能的原因是您正在使用基于 Amazon Linux 2 (AL2)的EB env。如果是这种情况,则您的 01_files.config不正确。
对于AL2,nginx
中的.platform/nginx/conf.d/
设置should be provided,而不是.ebextentions
。因此,例如,您可以创建以下配置文件:
.platform / nginx / conf.d / mynginx.conf
内容为:
client_max_body_size 20M
请注意,可能还有许多其他问题尚不明显,特别是如果您遵循有关AL1的任何说明。原因是AL1和AL2之间存在很多差异。