我已在AWS Elasticbeanstalk上部署了我的Rails应用程序,该应用程序允许用户使用
在我的nginx.conf文件中上传视频,该文件位于EC2的etc / nginx目录中
实例我必须在服务器部分添加一行以避免错误"Nginx: 413 Request Entity Too Large Error"
:
client_max_body_size 999M; 然后服务nginx重新加载
但在上传10-15个视频后,此文件会重置,然后我必须再次添加 此行和EC2实例的IP也会发生变化,
有人可以帮我解决这个问题。
答案 0 :(得分:0)
听起来您的实例正在终止并重建。你能检查一下"事件"您环境的页面,看看是否发生了这种情况?这应该是文件系统重置和IP地址发生变化的唯一原因。我怀疑正在触发自动缩放规则。
关于文件重置的原因,您是否注意到每次通过eb ssh
连接时都会显示以下警告:
This EC2 instance is managed by AWS Elastic Beanstalk. Changes made via
SSH WILL BE LOST if the instance is replaced by auto-scaling.
至少在Ruby + Passenger平台上,EB从/opt/elasticbeanstalk/support/conf
处的模板生成nginx配置文件 - 您应该看到名为nginx_config.erb
和nginx_config_healthd.erb
的文件。
您可以使用EB扩展(在documentation中描述)在部署期间修改这些文件,这将确保您的更改通过自动扩展保留。您的扩展程序可能如下所示:
<强> .ebextensions / 01 - 编辑的nginx-conf.config 强>
container_commands:
01backup_nginx_config:
command: "cp -n /opt/elasticbeanstalk/support/conf/nginx_config.erb /opt/elasticbeanstalk/support/conf/nginx_config.erb.original"
02edit_nginx_config:
command: "sh -c \"sed '/passenger_ruby/ i \
\ client_max_body_size 999M;' /opt/elasticbeanstalk/support/conf/nginx_config.erb.original > /opt/elasticbeanstalk/support/conf/nginx_config.erb\""