I have inherited a Microsoft Visual Studio
MVC project for modification and I now need to allow users to upload files to the web server. I utilize Windows 11
and IIS Express
from within MS Visual Studio
for development purposes and there is no issue with IIS.
However, the app runs in production on a Ubuntu-based
server running NGINX
as a web server.
PROBLEM: When I attempt to upload a file larger than 1MB from my browser to the production server I receive the error message "413 Request Entity Too Large." After scouring the web I have discovered: (a) NGINX
invokes the 1MB limit by default; and (b) it is necessary to modify the nginx.conf
file by adding the NGINX
"client-max-body-size" directive.
I have located the nginx.conf
file on the production server and have browsed it with Nano.
However, I have stopped short of attempting to modify and save the file due to the presence of Docker.
Admittedly, I know virtually nothing of Docker
and, unfortunately, the principals who set up this server have long since departed the Company. Furthermore, it is unclear to me whether simply modifying the nginx.conf
file and restarting NGINX
on the production server will do the trick given what I presume to be the necessity to involve Docker.
As an aside, my customer utilizes Azure DevOps
to facilitate collaboration. I regularly stage changes to my project using Git
from within MS Visual Studio
and subsequently use a Ubuntu
update_app.sh
script to push the changes into production. I had previously attempted to modify the nginx.conf
file included with the local copy of my MVC project. The file was pushed via Azure DevOps
to the production server but the modified nginx.conf
file would not push to production, presumably due to the presence of Docker.
I would appreciate someone providing me with an explanation of the interaction between Docker
and NGINX.
I would further appreciate any tip on how to get the modified nginx.conf
file pushed into production.
Thanks in advance for your assistance.
Thankfully this is pretty straightforward and NGIX has good documentation on this topic (see Copying Content and Configuration Files from the Docker Host section of Deploying NGINX and NGINX Plus on Docker ).
Dockerfile
for the deployed solution (typically in project or solution root directory)conf
within your source.conf
and apply any changes to the configuration file.Dockerfile
to copy files within conf
into the container where NGIX loads configuration files upon startup. Add the following line into Dockerfile
after the line FROM ngix
(note: line may vary but should be obvious its using ngix
as base image): COPY conf {INSERT RELATIVE PATH TO CONF PARENT FOLDER}
This will copy your local configuration file into the container upon creation which NGIX will load upon startup.
Note : There are other solutions that support configuration changes without rebuilding the container.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.