There are two methods you can take for this. Unfortunately some work for some EB application types and some work for others.
Supported/recommended in AWS documentation
For some application types, like Java SE, Go, Node.js, and maybe Ruby (it's not documented for Ruby, but all the other Nginx platforms seem to support this), Elasticbeanstalk has a built-in understanding of how to configure Nginx.
To extend Elastic Beanstalk's default nginx configuration, add .conf configuration files to a folder named .ebextensions/nginx/conf.d/
in your application source bundle. Elastic Beanstalk's nginx configuration includes .conf files in this folder automatically.
~/workspace/my-app/
|-- .ebextensions
| `-- nginx
| `-- conf.d
| `-- myconf.conf
`-- web.jar
Configuring the Reverse Proxy - Java SE
To increase the maximum upload size specifically, then create a file at .ebextensions/nginx/conf.d/proxy.conf
setting the max body size to whatever size you would prefer:
client_max_body_size 50M;
Create the Nginx config file directly
For some other application types, after much research and hours of working with the wonderful AWS support team, I created a config file inside of .ebextensions
to supplement the nginx config. This change allowed for a larger post body size.
Inside of the .ebextensions
directory, I created a file called 01_files.config
with the following contents:
files:
"/etc/nginx/conf.d/proxy.conf" :
mode: "000755"
owner: root
group: root
content: |
client_max_body_size 20M;
This generates a proxy.conf file inside of the /etc/nginx/conf.d directory. The proxy.conf file simply contains the one liner client_max_body_size 20M;
which does the trick.
Note that for some platforms, this file will be created during the deploy, but then removed in a later deployment phase.
You can specify other directives which are outlined in Nginx documentation.
http://wiki.nginx.org/Configuration
Hope this helps others!