【问题标题】:AWS Elastic Beanstalk - Configuring my nginx settings to increase timeout for Java Spring maven appAWS Elastic Beanstalk - 配置我的 nginx 设置以增加 Java Spring maven 应用程序的超时
【发布时间】:2017-07-09 02:49:12
【问题描述】:

所以我使用 AWS Elastic Beanstalk 来托管我的 Java Spring 应用程序,并且有些请求需要 60 多秒才能完成。我想提高超时上限以便完成这些,所以我开始关注this 教程。

我在 ELB 控制台中成功更改了负载均衡器超时,但在更改 nginx 代理的设置时遇到了问题。本教程建议创建一个名为.ebextensions/nginx-timeout.config 的文件,其中.ebextensions 位于“我的项目的根目录”中。本教程假设我们将 Beanstalk 与 Docker 一起使用,但我不是,所以我找到了 this 链接,该链接建议用这些内容填充 nginx-timeout.config 的内容:

files:
    "/tmp/proxy.conf":
        mode: "000644"
        owner: root
        group: root
       content: |
           proxy_send_timeout 1200;
           proxy_read_timeout 1200;
           send_timeout       1200;
container_commands:
    00-add-config:
        command: cat /tmp/proxy.conf >> /var/elasticbeanstalk/staging/nginx/conf.d/elasticbeanstalk/00_application.conf
    01-restart-nginx:
        command: service nginx restart

我的一个问题是我不知道我的应用程序的根在哪里。我正在使用 Maven 和 Java Spring Boot,所以我的结构如下:

我不确定是否应该将.ebextensions 放在我的pom.xml 文件所在的基本目录中,或者放在其他位置。此外,我部署此应用程序的方法是使用 maven 构建 jar,然后上传 jar,我不确定这是否会改变任何内容。

对这个问题有什么建议吗?我目前也在尝试查看如何通过 ssh 进入我的实例以更改那里的 nginx 服务器的配置,但我不确定这是否可行。

【问题讨论】:

    标签: spring maven amazon-web-services nginx timeout


    【解决方案1】:

    Where to add .ebextensions in a WAR? 的可能副本,但由于您没有使用 war 打包,您可以使用基于 Procfile 的configuration 并将您的 jar 和 .ebextensions 存档到额外的 zip 层中。那么你的 zip 文件结构应该是这样的:

    your_app.zip
    |
    |_.ebextensions
    |   |_ nginx-timeout.config
    |
    |_ your_app.jar
    |_ Procfile
    

    您的 Procfile 应该包含您的 jar 文件启动说明

    $ cat Procfile
    web: java -jar your_app.jar
    

    【讨论】:

      猜你喜欢
      • 2020-08-27
      • 2019-02-23
      • 2020-10-25
      • 2022-01-06
      • 2021-08-22
      • 2021-11-24
      • 2016-03-04
      • 2018-04-14
      • 2016-07-01
      相关资源
      最近更新 更多