Разрешаем загрузку больших файлов в nginx/apache/php

Nginx




Директива client_max_body_size задаёт максимально допустимый размер тела запроса клиента, указываемый в строке «Content-Length» в заголовке запроса. Если размер больше заданного, то клиенту возвращается ошибка «Request Entity Too Large» (413). Следует иметь в виду, что браузеры не умеют корректно показывать эту ошибку.




sudo nano /etc/nginx/nginx.conf 




Далее находим или вставляем в секцию http следующую строчку:




client_max_body_size 100m;




После чего нужно будет не забыть перезагрузить nginx:




sudo service nginx reload




Apache/Php




Нужно изменить в php.ini сервера максимально разрешенный объём загружаемых файлов на нужное значение и  перезагрузить apache. Это параметры upload_max_filesize и post_max_size.







sudo nano /etc/php/8.1/apache2/php.ini




Находим и изменяем следующую директиву:




upload_max_filesize 100M




и эту:




post_max_size 100M




Сохраняем файл и перезагружаем apache:




sudo service apache2 reload




Nginx: timeout




Бывает такое, что загружаешь большой файл, а сайт отваливается по таймауту:




504 Gateway Time-out
nginx




Довольно неприятная ситуация. Ты сидишь и думаешь, а загрузился ли твой файл или нужно заново грузить… Так вот, есть и под это директива в nginx




sudo nano /etc/nginx/sites-available/yourdomain.ru




Добавляем/изменяем в секции location / {} следующие строчки (время в секундах):




location / {
...
proxy_connect_timeout 500;
proxy_send_timeout 500;
proxy_read_timeout 500;
...
}




Я указал 500 секунд, нужно понимать, что это фантастическая величина и она вам явно не нужна на сервере, но, вы можете поставить её на своё усмотрение!



2019-05-08T05:08:56
Настройка web сервера