Ограничения на загрузку файлов и таймауты: где теряются данные

Знакомая ситуация: сотрудник пытается загрузить на сайт прайс поставщика, страница долго думает и выдаёт ошибку. Или фотограф прислал снимки объекта, а они не загружаются в галерею — «файл слишком большой». Или выгрузка каталога из системы учёта обрывается на середине, и в каталоге оказывается половина товаров. Или клиент жалуется, что не может приложить план помещения к заявке.
Всё это — проявления одной группы ограничений, которые установлены на сервере и о которых обычно узнают в самый неподходящий момент. Разберём, какие это ограничения, почему они существуют, как понять, в какое именно вы упёрлись, и что с этим делать.
Какие ограничения существуют
На каждом сервере действует набор ограничений. Они не злой умысел хостинга, а необходимость: без них один сайт мог бы занять все ресурсы сервера и положить остальные.
Максимальный размер загружаемого файла. Самое известное. Обычно от 2 до 64 мегабайт в зависимости от хостинга. Файл больше этого размера просто не примется.
Максимальный размер всех данных в одном запросе. Отдельное ограничение, которое часто меньше ожидаемого. Важно, когда загружается несколько файлов сразу или когда вместе с файлом отправляется большая форма.
Время выполнения скрипта. Сколько секунд серверу разрешено обрабатывать один запрос. Обычно 30 или 60 секунд. Если обработка не уложилась — процесс обрывается. Это то, что ломает большие выгрузки каталога.
Время ожидания ввода данных. Сколько времени сервер готов ждать, пока файл загрузится целиком. При медленном интернете большой файл может не успеть.
Объём оперативной памяти на один процесс. Сколько памяти может занять обработка. Обработка большого изображения или разбор большого файла прайса требует памяти, и при нехватке процесс аварийно завершается.
Максимальное число полей в одном запросе. Редко замечаемое ограничение, которое вылезает при массовом редактировании — например, когда сохраняешь таблицу цен на триста позиций разом.
Ограничения на стороне веб-сервера. Отдельный слой, со своим ограничением размера запроса и своим временем ожидания. Бывает, что настройки в одном месте увеличили, а в другом нет, — и ничего не изменилось.
Дисковая квота. Сколько всего места вам выделено. При исчерпании перестаёт загружаться вообще всё, и часто это сопровождается странными ошибками, по которым причину не угадать.
Ограничение по числу файлов. Некоторые хостинги ограничивают не только объём, но и количество файлов. Сайт с большим каталогом изображений может упереться именно в него.
Как понять, в какое ограничение вы упёрлись
Симптомы похожи, но различить можно.
Сразу появляется сообщение «файл слишком большой». Упёрлись в максимальный размер файла. Самый простой случай — ограничение сработало до начала загрузки.
Файл долго загружается, а потом ошибка. Скорее всего, время ожидания или размер данных в запросе.
Страница долго думает и показывает пустой белый экран или ошибку сервера. Обычно превышено время выполнения или не хватило памяти.
Загрузка проходит, но файл не появляется. Вероятно, кончилось место на диске или нет прав на запись в папку.
Выгрузка каталога обрывается всегда примерно на одном и том же месте. Время выполнения. Характерный признак — обрыв не на конкретном товаре, а примерно через одинаковое количество секунд.
Сохранение большой формы теряет часть данных. Ограничение на число полей в запросе. Коварно тем, что ошибки нет — данные просто не доходят.
Всё работало, а потом перестало. Проверьте свободное место и не изменил ли хостинг тарифные ограничения.
Точную картину даёт журнал ошибок сервера. Он есть в панели управления хостингом, и там обычно написано прямым текстом, что именно превышено. Это первое место, куда стоит смотреть, — гораздо быстрее, чем гадать.
Что можно сделать самостоятельно
Не всегда нужно менять настройки — часто проще изменить подход.
Сжимайте изображения перед загрузкой. Снимок с современного телефона весит пять-десять мегабайт, а для сайта достаточно версии в несколько сотен килобайт. Сжатие перед загрузкой решает проблему и заодно ускоряет сайт. Это вообще полезная привычка: тяжёлые изображения — одна из главных причин медленной загрузки страниц, а медленный сайт теряет обращения.
Разбивайте большие выгрузки на части. Вместо одного файла на пять тысяч товаров — пять файлов по тысяче. Обработка каждого укладывается в лимит времени.
Загружайте архивом. Много мелких файлов удобнее загрузить одним архивом через файловый менеджер и распаковать на сервере.
Используйте загрузку по частям. Многие системы управления умеют загружать большой файл кусками, обходя ограничение на размер одного запроса. Стоит проверить, включена ли такая возможность.
Загружайте через файловый доступ, а не через браузер. Для разовой загрузки большого объёма это самый надёжный путь: ограничения браузерной загрузки на него не действуют.
Проверьте свободное место. Банально, но регулярно оказывается причиной. Заодно посмотрите, чем занято: часто половину места съедают старые резервные копии и неиспользуемые изображения.
Настройте фоновую обработку. Для регулярных выгрузок каталога правильное решение — не загружать через браузер, а класть файл в определённую папку и обрабатывать его задачей по расписанию на сервере. Задача по расписанию не ограничена временем выполнения так жёстко, как браузерный запрос, и не обрывается.
Что делает специалист
Часть ограничений можно поднять, и это делается на нескольких уровнях.
Настройки среды выполнения обычно можно изменить в панели управления хостингом или через файл конфигурации в корне сайта. Меняются размер загружаемого файла, размер запроса, время выполнения, объём памяти, число полей.
Настройки веб-сервера меняются отдельно, и на виртуальном хостинге доступ к ним чаще всего ограничен — тут нужна помощь поддержки хостинга.
На выделенном сервере доступно всё, но и ответственность выше: подняв ограничения слишком высоко, легко получить ситуацию, когда один тяжёлый запрос кладёт весь сайт.
Здесь важно понимать: поднимать ограничения бесконечно — не решение. Если выгрузка каталога упирается во время выполнения, правильнее переделать её на фоновую обработку, чем ставить лимит в десять минут и надеяться. Ограничения существуют не просто так.
Отдельно про форму заявки с приложением файла
Эта ситуация заслуживает отдельного разговора, потому что напрямую влияет на количество обращений.
Во многих нишах клиент хочет приложить к заявке файл: план помещения, фотографию поломки, ведомость объёмов, техническое задание, скриншот. Если приложить не получается — часть людей уходит, а часть присылает на почту, которую ещё надо найти на сайте.
Что здесь ломается чаще всего:
Ограничение размера, о котором не предупредили. Человек прикладывает фотографию с телефона на восемь мегабайт, а лимит пять. Заявка не отправляется, и часто без внятного сообщения — просто ничего не происходит.
Не разрешён нужный тип файла. Разрешены только изображения, а человек хочет приложить таблицу или документ.
Нельзя приложить несколько файлов. А у человека пять фотографий.
Ошибка не объяснена. Самое обидное: форма показывает «произошла ошибка» без указания причины. Человек не понимает, что делать, и уходит.
Как правильно: прямо рядом с полем написать ограничения человеческим языком — «до 10 мегабайт, можно приложить до пяти файлов, любые изображения и документы». Показывать понятную ошибку с объяснением. Разрешить достаточный размер, чтобы обычная фотография с телефона проходила без обработки. И обязательно — проверить всё это с телефона, потому что большинство людей прикладывает файлы именно оттуда.
Отдельно: даже при неудачной загрузке файла заявка должна отправляться. Терять контакт человека из-за того, что не прошло вложение, — самая обидная потеря из возможных.
Продвижение 3 в 1: как это связано с обращениями
Может показаться, что серверные ограничения — чисто техническая тема, далёкая от потока клиентов. На практике связь прямая.
Поиск, обычный и нейропоисковый. Если выгрузка каталога регулярно обрывается, часть товаров на сайте отсутствует или содержит устаревшие цены. Эти позиции не приводят посетителей, а те, что приводят, разочаровывают неактуальной информацией. Плюс тяжёлые несжатые изображения замедляют сайт, а медленные страницы теряют людей ещё до того, как те что-то прочитали. Для генеративных ответов поисковиков актуальность данных на сайте тоже важна: система цитирует то, что прочитала, и устаревшая цена может уйти в ответ.
Яндекс.Справочник. Фотографии в карточке в Яндекс Бизнесе — один из главных факторов, влияющих на то, выберет ли вас человек. Если загрузка фотографий на сайт постоянно ломается и сотрудники махнули рукой, то и карточка обычно остаётся с тремя старыми снимками.
2ГИС. То же самое. Плюс актуальность прайса, если вы его показываете.
Практический вывод: наладить нормальную загрузку файлов и выгрузку каталога — это не «техническая мелочь», а условие того, чтобы все три канала работали на актуальных данных.
И как обычно про оценку: результат смотрите по обращениям, а не по позициям сайта в выдаче — они персонализированы и ни о чём не говорят. Считайте заявки, звонки и обращения с карт в Яндекс.Метрике и в статистике карточек.
Регулярная выгрузка каталога: как сделать надёжно
Раз выгрузка каталога — главный источник проблем с ограничениями, разберём, как её правильно устроить.
Неправильно. Сотрудник раз в неделю заходит в панель управления сайтом, выбирает файл прайса на несколько десятков мегабайт, нажимает «загрузить» и ждёт. Половина попыток обрывается, приходится повторять, иногда каталог остаётся в промежуточном состоянии — часть цен новая, часть старая.
Правильно. Файл прайса кладётся в определённую папку на сервере — автоматически из системы учёта или вручную через файловый доступ. Задача по расписанию раз в час проверяет, появился ли новый файл, и если появился — обрабатывает его порциями, записывая, на чём остановилась. Если процесс прервался, следующий запуск продолжает с того же места. По окончании отправляется уведомление: обработано столько-то позиций, изменено столько-то цен, столько-то строк с ошибками.
Что это даёт. Никто не сидит и не ждёт. Ограничение времени выполнения не мешает, потому что каждая порция укладывается в лимит. Обрыв не приводит к порче каталога. Ошибки видны в отчёте, а не обнаруживаются через месяц по жалобе клиента.
Отдельно про промежуточное состояние. Пока идёт обработка, посетители видят каталог. Если обновление затрагивает цены, лучше готовить данные в стороне и применять их одним действием, чтобы не было момента, когда часть товаров с новыми ценами, а часть со старыми.
Отдельно про несколько поставщиков. Если прайсы приходят от разных поставщиков в разных форматах, для каждого нужен свой разбор, но общая схема остаётся той же: файл в папку, задача по расписанию, отчёт.
Настройка такой схемы занимает время один раз и потом экономит часы каждую неделю — плюс избавляет от ситуации, когда каталог на сайте не соответствует действительности, а компания об этом не знает.
Что проверить у себя
Найдите в панели хостинга текущие значения ограничений: размер файла, размер запроса, время выполнения, память. Запишите их куда-нибудь — они пригодятся при любом разговоре с разработчиком.
Проверьте свободное место на диске и посмотрите, чем оно занято.
Попробуйте приложить к своей форме заявки фотографию с телефона без сжатия. Если не проходит — правьте.
Проверьте, как устроена выгрузка каталога: через браузер или фоновой задачей. Если через браузер и она большая — это будущая проблема.
Посмотрите журнал ошибок сервера за последний месяц. Повторяющиеся сообщения о превышении лимитов покажут, где вы упираетесь регулярно.
Договоритесь внутри компании о правиле: изображения перед загрузкой сжимаются. Это снимает половину проблем и заодно ускоряет сайт.
Если у вас регулярно не загружаются файлы, обрывается выгрузка каталога или клиенты не могут приложить документ к заявке, специалисты компании «Сайты Профессионально» проведут бесплатную диагностику: посмотрят настройки сервера и системы управления, найдут, в какое именно ограничение вы упираетесь, и предложат решение — от простой настройки до переноса тяжёлых операций в фоновую обработку, чтобы сайт работал предсказуемо и не терял обращений.
Хотите получить бесплатную диагностику сайта?
Получите бесплатную экспресс-диагностику за 24 часа. Проверим ошибки, сбои, скорость, безопасность и скрытые ошибки — пришлём отчёт с рекомендациями.
- Скорость загрузки и мобильная версия
- Уязвимости, вирусы, взломы
- Битые ссылки, дубли, SEO-ошибки
- Статус домена, SSL, хостинга
Популярные решения наших клиентов:

До 10 часов работ в мес.
Ежедневная диагностика
Продление домена
Продление хостинга/сервера

До 40 часов работ в мес.

До 100 часов работ в мес.
