I am unable to upload a file above 1 megabyte due to the default setting on AWS elastic beanstalk nginx. I have looked online and I have found out that I need to change the client_max_body_size to client_max_body_size 20M to allow for larger files. However, there is no where for me to do this. There is no Nginx config file on .net. I am using .net 5 and I then use aws toolkit on visual studio 19 to upload it to elastic beanstalk. the only config file that I can see is the aws-beanstalk-tools-defaults.json.
{
"region" : "eu-west-2",
"configuration" : "Release",
"framework" : "net5.0",
"self-contained" : false,
"application" : "testapplication",
"environment" : "testapplication-prod-env",
"enable-xray" : false,
"enhanced-health-type" : "basic",
"additional-options" : "",
"proxy-server" : "nginx",
"solution-stack" : "64bit Amazon Linux 2 v2.1.5 running .NET Core",
"environment-type" : "LoadBalanced",
"cname" : "vitradssltest-prod",
"instance-type" : "t3a.nano",
"key-pair" : "my key pair for testing",
"instance-profile" : "aws-elasticbeanstalk-ec2-role",
"service-role" : "aws-elasticbeanstalk-service-role",
"loadbalancer-type" : "classic",
"health-check-url" : "/"
}
3
Answers
Since you are using
64bit Amazon Linux 2 v2.1.5 running .NET Core
nginx is on by default. Thus, I don’t see any reason why standard way of customizing nginx wouldn’t work for you.Specifically, the custom settings should be in
.platform/nginx/conf.d/
as shown in the docs. Therefore, you can create the following.platform/nginx/conf.d/myconfig.conf
file with the content:This has been achieved before with AWS elastic beanstalk. Although your image may be different, I used the following process:
In a similar solution I worked on, it looked like this:
When you deploy the change to elastic beanstalk, it will read from the ebextensions folder and apply all file updates.
I had a bit of fun and games adding it to the project. Just ensure this item group is in the .csproj file
If after publishing to EBS you then check e.g.
you should see: