Elastic Beanstalk中Nginx的client_max_body_size配置持久化方案咨询
Hey there, I’ve dealt with this exact frustration before—manual Nginx config changes on Elastic Beanstalk get wiped clean every time you run eb deploy because EB spins up fresh instances (or overwrites existing configs) using your app bundle and default platform settings. Let’s fix this so your client_max_body_size sticks around through every deployment:
This is the most reliable, maintainable way to persist config changes. EB automatically applies these files during every deployment.
- First, create a folder named
.ebextensionsin the root directory of your application bundle (same level as yourpackage.json,requirements.txt, or app entry point). - Inside
.ebextensions, make a new file with a.configextension—something likenginx_max_body_size.config(the name doesn’t matter, just the extension). - Paste this YAML content into the file, adjusting the size value to your needs:
files: "/etc/nginx/conf.d/00_client_max_body_size.conf": mode: "000644" owner: root group: root content: | client_max_body_size 50M; # Change this to your desired limit (e.g., 100M, 1G)
What this does: It creates a custom Nginx config file in the conf.d directory, which Nginx automatically loads alongside its default settings. This will override the default client_max_body_size value, and since it’s part of your app bundle, EB will recreate it on every deployment.
If you’re using Amazon Linux 2 (the current default for EB), you can also use the .platform directory structure (this is the modern, preferred approach for AL2):
- Create a folder path
.platform/nginx/conf.d/in your app root. - Inside that, add a file like
max_body_size.confwith this simple content:
client_max_body_size 50M;
EB will automatically copy this file to the correct Nginx config directory during deployment, ensuring your setting persists.
After running eb deploy, SSH into your instance and check that the config file exists:
cat /etc/nginx/conf.d/00_client_max_body_size.conf # Or for AL2 with .platform: cat /etc/nginx/conf.d/max_body_size.conf
You can also test Nginx to make sure there are no config errors:
sudo nginx -t
If everything looks good, restart Nginx (though EB usually handles this automatically):
# For Amazon Linux 1 sudo service nginx restart # For Amazon Linux 2 sudo systemctl restart nginx
Just a quick reminder: Never edit config files directly on EB instances. Every deployment replaces the instance’s configs with the default platform settings plus whatever’s in your .ebextensions or .platform folders. Manual changes are temporary and will get overwritten on the next deploy.
内容的提问来源于stack exchange,提问作者shredding




