This Is Your Brain On Informatics: NGINX and Large Files
Contents
Need-to-know NGINX Parameters for Large Files
Size Parameters
- client_max_body_size'
If you've done the setup as in the blog, this parameter should be located in
/etc/nginx/nginx.conf
This parameter controls the size of a file that is allowed to be passed through NGINX. If a file that is passed to the server is too large, an error of 413 (or something similar will result). The way to fix that is to change the size of the file that is allowed to be passed to a larger number. The letter k is for kilobytes and m is for megabytes (you should not be passing gigabytes to your poor overworked server).
Server Timing Parameters
- client_header_timeout
- client_body_timeout
- keepalive_timeout
- send_timeout
These parameters should be in the same file as the size parameters.
/etc/nginx/nginx.conf
Each one of these modifies how long NGINX will deal with part of the process for uploading a file. Suffice it to say, that if your file upload is somehow timing out, these parameters need to be increased in order to allow the file to take its time in uploading.
FastCGI Parameters
- fastcgi_read_timeout
This parameter will only work with something that is using FastCGI (like PHP, or another language). It is what allows CGI to keep processing the uploaded file. Again, if the uploaded file is timing out. This parameter needs to be increased.