AWS Elastic Beanstalk - 配置我的 nginx 设置以增加 Java Spring maven 应用程序的超时
AWS Elastic Beanstalk - Configuring my nginx settings to increase timeout for Java Spring maven app
所以我正在使用 AWS Elastic Beanstalk 来托管我的 Java Spring 应用程序,并且某些请求需要超过 60 秒才能完成。我想提高超时上限以便这些可以完成,所以我开始遵循 this 教程。
我在 ELB 控制台中成功更改了负载均衡器超时,但我无法更改 nginx 代理的设置。本教程建议创建一个名为 .ebextensions/nginx-timeout.config
的文件,其中 .ebextensions
在 "root of my project." 中本教程假设我们使用 Beanstalk 和 Docker,而我不是,所以我发现 this link 建议用这些内容填充 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
我的一个问题是我不知道我的应用程序的根到底在哪里。我在 Java Spring Boot 中使用 Maven,所以我的结构如下:
我不确定是否应该将 .ebextensions
放在我的 pom.xml
文件所在的基本目录中,或者其他地方。此外,我部署此应用程序的方法是使用 maven 构建 jar,然后上传 jar,我不确定这是否会改变任何内容。
关于这个问题有什么建议吗?我目前也在尝试查看如何通过 ssh 进入我的实例以可能更改那里的 nginx 服务器的配置,但我不确定这是否可行。
可能是 Where to add .ebextensions in a WAR?, though since you are not using war packaging you can use Procfile-based configuration 的副本,并将您的 jar 和 .ebextensions 存档到其他压缩层中。那么您的 zip 文件结构应该如下所示:
your_app.zip
|
|_.ebextensions
| |_ nginx-timeout.config
|
|_ your_app.jar
|_ Procfile
并且您的 Procfile 应该包含您的 jar 文件启动说明
$ cat Procfile
web: java -jar your_app.jar
所以我正在使用 AWS Elastic Beanstalk 来托管我的 Java Spring 应用程序,并且某些请求需要超过 60 秒才能完成。我想提高超时上限以便这些可以完成,所以我开始遵循 this 教程。
我在 ELB 控制台中成功更改了负载均衡器超时,但我无法更改 nginx 代理的设置。本教程建议创建一个名为 .ebextensions/nginx-timeout.config
的文件,其中 .ebextensions
在 "root of my project." 中本教程假设我们使用 Beanstalk 和 Docker,而我不是,所以我发现 this link 建议用这些内容填充 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
我的一个问题是我不知道我的应用程序的根到底在哪里。我在 Java Spring Boot 中使用 Maven,所以我的结构如下:
我不确定是否应该将 .ebextensions
放在我的 pom.xml
文件所在的基本目录中,或者其他地方。此外,我部署此应用程序的方法是使用 maven 构建 jar,然后上传 jar,我不确定这是否会改变任何内容。
关于这个问题有什么建议吗?我目前也在尝试查看如何通过 ssh 进入我的实例以可能更改那里的 nginx 服务器的配置,但我不确定这是否可行。
可能是 Where to add .ebextensions in a WAR?, though since you are not using war packaging you can use Procfile-based configuration 的副本,并将您的 jar 和 .ebextensions 存档到其他压缩层中。那么您的 zip 文件结构应该如下所示:
your_app.zip
|
|_.ebextensions
| |_ nginx-timeout.config
|
|_ your_app.jar
|_ Procfile
并且您的 Procfile 应该包含您的 jar 文件启动说明
$ cat Procfile
web: java -jar your_app.jar