Ruby on rails 弹性beanstalk重置.config文件

Ruby on rails 弹性beanstalk重置.config文件,ruby-on-rails,nginx,amazon-ec2,amazon-elastic-beanstalk,Ruby On Rails,Nginx,Amazon Ec2,Amazon Elastic Beanstalk,我有一个运行在elastic beanstalk上的ruby on rails应用程序,我想上传一些大文件——可能在5gb左右。 为此,我在.ebextensios/nginx/01\u upload\u file\u size.config上添加了一个配置文件,内容如下: 文件: “/etc/nginx/conf.d/proxy.conf”: 模式:“000755” 所有者:root 组:根 内容:| 客户机最大机身尺寸为20G; 将代码部署到EB后,使用命令sudo service ngi

我有一个运行在elastic beanstalk上的ruby on rails应用程序,我想上传一些大文件——可能在5gb左右。 为此,我在.ebextensios/nginx/01\u upload\u file\u size.config上添加了一个配置文件,内容如下:

文件:
“/etc/nginx/conf.d/proxy.conf”:
模式:“000755”
所有者:root
组:根
内容:|
客户机最大机身尺寸为20G;

将代码部署到EB后,使用命令
sudo service nginx reload
重新启动nginx服务器。这似乎有一段时间有效

第二天上载大文件时出现“连接已重置”错误。日志文件
log/nginx/error.logs
告诉我错误客户端打算发送太大的正文:240848字节

我不知道为什么会这样。似乎配置文件在短期内或重置后被忽略,但我在文档中看不到发生这种情况的任何参考。请注意,当我再次SSH到eb环境并重新启动nginx时,我可以毫无问题地上传大文件


在处理完所有事情后,我在电子商务控制台上看到了这些事件

将实例[i-076127f714faac566]添加到您的环境中

已从您的环境中删除实例[i-0c51791325b54873c]

我还注意到,当配置重置时,主机的IP地址会发生变化

我认为,当实例被自动添加并从EB中删除时,它没有应用配置文件,或者没有像我通过SSH手动那样重新启动nginx服务器


所以问题是:我如何确保客户机\u max\u body\u类型始终设置为20G,即使在删除并重新添加实例之后也是如此?或者,如何使配置持久化,从而不必手动重新启动nginx服务器?

我认为您在这里有两个问题-为什么EB要替换您的实例,以及如何自动重新启动nginx

回答第一个问题需要您进行一些研究,但我怀疑它可能是默认的CloudWatch警报,当网络流量下降到某个阈值以下时,它会杀死实例

第二个问题应该相当直截了当;按照,您应该能够在部署过程中自动重新启动nginx的
01\u upload\u file\u size.config
中添加一个部分:

container_commands:
  01_restart_nginx:
    command: "service nginx reload"

我还要检查以确保
/etc/nginx/conf.d/proxy.conf
文件实际上正在创建-我不知道是否支持
.ebextensions
下的文件夹。您可能需要将配置文件移动到
.ebextensions/01\u upload\u file\u size.config

我想您这里有两个问题-为什么EB要替换您的实例,以及如何自动重启nginx

回答第一个问题需要您进行一些研究,但我怀疑它可能是默认的CloudWatch警报,当网络流量下降到某个阈值以下时,它会杀死实例

第二个问题应该相当直截了当;按照,您应该能够在部署过程中自动重新启动nginx的
01\u upload\u file\u size.config
中添加一个部分:

container_commands:
  01_restart_nginx:
    command: "service nginx reload"

我还要检查以确保
/etc/nginx/conf.d/proxy.conf
文件实际上正在创建-我不知道是否支持
.ebextensions
下的文件夹。您可能需要将配置文件移动到
.ebextensions/01\u upload\u file\u size.config

谢谢您的回答。我有一个自动缩放环境,因此实例会根据服务器负载自动添加/删除。我确实在日志上找到了一些cloudwatch的痕迹,所以我会深入研究。现在,我已经删除了自动缩放功能,暂时避免了这个问题。很高兴听到这个消息!有一个默认的自动缩放规则,如果实例的网络流量低于某个阈值,就会终止该实例,这在低流量站点上很常见。谢谢您的回答。我有一个自动缩放环境,因此实例会根据服务器负载自动添加/删除。我确实在日志上找到了一些cloudwatch的痕迹,所以我会深入研究。现在,我已经删除了自动缩放功能,暂时避免了这个问题。很高兴听到这个消息!有一个默认的自动缩放规则,如果实例的网络流量低于某个阈值,该规则将终止实例,这在低流量站点上很常见。