所以我使用AWS Elastic Beanstalk来托管我的Java Spring应用程序,并且某些请求需要60多秒才能完成.我想提高超时限额以便完成,所以我开始关注this教程.
我成功地在ELB控制台中更改了Load Balancer超时,但是我在更改Nginx代理的设置时遇到了问题.本教程建议创建一个名为.ebextensions / Nginx-timeout.config的文件,其中.ebextensions位于“我项目的根目录”中.本教程假设我们正在使用带有Docker的Beanstalk,我不是,所以我找到了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服务器的配置,但我不确定这是否可行.
解决方法:
可能重复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
$cat procfile
web: java -jar your_app.jar