Beanstalk的nginx没有在我的应用程序源包中选择.conf文件

mzmfm0qo  于 2023-02-15  发布在  Nginx
关注(0)|答案(1)|浏览(138)

我有一个构建在Beanstalk(Amazon Linux 2)上的Sping Boot 应用程序,我需要增加client_max_body_size,因为我发布的一些表单数据包含图像,并且我收到413: Request Too Large Nginx错误。
我按照AWS的文档了解了如何更改此属性。
我的项目结构现在如下所示:

而文件的内容是:

client_max_body_size 50M;

部署后,我不断得到相同的错误(与图像〉1MB的总数)。
未在conf.d中创建文件:

这是因为我的buildSpec如何打包我的应用程序吗?

version: 0.2

phases:
  install:
    runtime-versions:
      java: corretto17
  pre_build:
    commands:
      - echo Nothing to do in the pre_build phase...
  build:
    commands:
      - echo Build started on `date`
      - mvn package -Dmaven.test.skip
  post_build:
    commands:
      - echo Build completed on `date`
artifacts:
  files:
    - .platform/nginx/conf.d/proxy.conf
    - target/myApp-0.0.1-SNAPSHOT.jar
    - appspec.yml
  discard-paths: yes

我还尝试将配置文件添加到我的buildspec.ymlartifacts.files部分。
我还尝试从buildspec上的files部分创建文件及其内容。
我觉得我什么都试过了,有什么我可能错过了吗?

目前,我的解决方案是:

我手动编辑了文件

cd /etc/nginx/
sudo nano nginx.conf

这样就可以了,但是我想避免这种手动配置,所以它是从应用程序源代码中配置的,这是一个很好的实践。

neekobn8

neekobn81#

问题出在我的构建规范上。

discard-paths: yes

我把所有的文件放在包的根路径上,我需要这个,所以我把jar放在根路径上,但是它也把proxy.conf放在根路径上。
将该属性设置为no(或删除它)可以使其正常工作,但我需要一种方法将jar从/target/更改为根目录,因此我使用一个构建后命令来完成此操作:

version: 0.2

phases:
  install:
    runtime-versions:
      java: corretto17
  pre_build:
    commands:
      - echo Nothing to do in the pre_build phase...
  build:
    commands:
      - echo Build started on `date`
      - mvn package -Dmaven.test.skip
  post_build:
    commands:
      - mv target/myApp-0.0.1-SNAPSHOT.jar myApp-0.0.1-SNAPSHOT.jar <------ HERE
      - echo Build completed on `date`
artifacts:
  files:
    - .platform/nginx/conf.d/proxy.conf
    - myApp-0.0.1-SNAPSHOT.jar
    - appspec.yml

相关问题