Large file uploads with Apache
Q I would like to use HTTP to upload large files (in excess of 200MB) to a server, because some of our customers aren't able to use FTP due to firewall restrictions (using Perl or PHP as the upload handler). What issues are there with Apache handling this amount of traffic in an occasional burst, or even frequently? Should there be any tuning done to the server that would help? Or are there any amends I could make to our Apache configuration file that would help?
A Indeed, there are a number of configurable limits to how big the file size is. The ones that might affect you are Apache's LimitRequestBody, though it defaults to unlimited in version 2.0, and PHP's upload_max_filesize and post_max_size. However, what generally affects Apache the most in file uploads is the memory consumption and how long the httpd process stays up. The latter limits the number of requests httpd can handle, either because of the number of processes that have to be in memory or the memory footprint of the processes themselves. Also make sure you're not allowing uploads via SSL, to avoid the overhead that encryption would incur. If you're using Perl, you should fork so that you release the httpd process and have your child process handle the rest of the transaction. I couldn't tell you anything about that in PHP as I haven't used it for quite a while.
- File uploads not matching their MD5 checksums
- Apache redirecting
- Limit user to only restarting Apache
- Apache 2 and PHP
- Hiding an Apache directory listing