Ошибка 500 (500 Internal Server Error, внутренняя ошибка сервера) означает, что браузер отправил корректный запрос, но сервер не смог его обработать и не нашёл более точного кода, чтобы описать сбой. Проще говоря: проблема на стороне сайта или сервера, а не у вас. Ниже разберём, что значит эта ошибка, чем она отличается от соседних 502, 503 и 504, почему появляется и как её устранить - отдельно для обычного посетителя и для владельца или администратора сайта.
Когда вы открываете страницу, браузер отправляет на сервер запрос. Сервер его принимает, обрабатывает и возвращает обратно содержимое страницы (HTML, CSS, скрипты) вместе с кодом состояния HTTP. Этот код сообщает, чем закончился запрос: например, 200 - всё в порядке, страница отдана.
Код 500 означает, что на сервере произошло что-то непредвиденное, и выполнить запрос не удалось. Это самый общий из серверных кодов: его отдают тогда, когда сервер не может назвать более конкретную причину. Сообщение может выглядеть по-разному - «500 Internal Server Error», «Internal Server Error», «На сервере произошла ошибка» или просто «Что-то пошло не так», - оформление зависит от настроек сайта.
Ошибка 500 не связана с вашим браузером, устройством или интернетом - сбой произошёл на самом сервере, поэтому вы увидите её где угодно. Для посетителя это обычно тупик, а вот для владельца сайта - сигнал, что с ресурсом что-то не так и нужно разбираться.
Коды, которые начинаются с пятёрки, - это группа серверных ошибок (5xx). Их часто путают, хотя причины у них разные. Понять, какой именно код вы видите, важно: это сразу подсказывает, где искать проблему.
| Код | Название | Что значит |
|---|---|---|
| 500 | Internal Server Error | Общий сбой на сервере, конкретную причину он назвать не смог |
| 501 | Not Implemented | Сервер не поддерживает метод запроса |
| 502 | Bad Gateway | Прокси или шлюз получил некорректный ответ от вышестоящего сервера |
| 503 | Service Unavailable | Сервер перегружен или остановлен на обслуживание, временно недоступен |
| 504 | Gateway Timeout | Шлюз не дождался ответа от вышестоящего сервера (таймаут) |
Если вы видите именно 500, а не 502 или 504, скорее всего дело не в шлюзе и не в таймауте, а в самом приложении на сервере: коде сайта, правах доступа, базе данных или нехватке ресурсов. Полный разбор остальных кодов - в статье про расшифровку ошибок сервера.
Внутреннюю ошибку сервера вызывает не одна конкретная причина, а целый набор ситуаций. Самые частые:
.htaccess;memory_limit) или превышено время выполнения скрипта;Чаще всего виноваты права доступа и нехватка ресурсов. Если сайт стоит на хостинге с жёсткими лимитами памяти, под нагрузкой он легко упирается в потолок и отдаёт 500. Устранить такую причину может только владелец сайта или его администратор - со стороны посетителя тут сделать нечего.
Гадать о причине 500 не нужно - её почти всегда видно в логе ошибок сервера. Это первое, куда стоит заглянуть администратору. Где лежит лог:
/var/log/nginx/error.log;/var/log/apache2/error.log (Debian, Ubuntu) или /var/log/httpd/error_log (CentOS, RHEL);Посмотреть последние строки можно командой tail -n 50 /var/log/nginx/error.log, а tail -f покажет лог в реальном времени - удобно, чтобы воспроизвести ошибку и сразу увидеть запись о ней. В строке обычно есть время, тип ошибки и подсказка: нехватка прав, превышен лимит памяти, упал процесс PHP-FPM, синтаксическая ошибка в скрипте. Это сужает поиск с «непонятно что» до конкретного файла.
Лог ошибок - первое, куда стоит смотреть при 500. В девяти случаях из десяти причина уже записана там, и не нужно тратить время на догадки. Выбор между Apache и nginx и их настройка влияют на то, как сервер обрабатывает запросы и пишет логи, - об этом подробнее в материале Apache или nginx: что выбрать.
Долго висящая ошибка 500 вредит позициям сайта в поиске. Поисковые роботы регулярно обходят страницы: если страница работает, её содержимое индексируется. Когда робот натыкается на ошибку, он какое-то время сохраняет прежний статус страницы, давая владельцу шанс всё починить. Но если при следующих визитах ошибка повторяется, страница выпадает из выдачи.
Массовые ошибки 500 поисковики читают как признак низкого качества и проблем с доступностью - такой сайт ранжируется ниже. Поэтому следить за кодами ответа стоит постоянно: в Яндекс.Вебмастере и Google Search Console видно, какие страницы отдают 5xx. После починки страницу можно вернуть в индекс, отправив на переобход.
Если вы наткнулись на ошибку 500 на чужом сайте, в большинстве случаев от вас ничего не зависит - причина на сервере. Но пара действий иногда помогает:
Отдельный случай - ошибка при оформлении заказа в интернет-магазине. Не обновляйте страницу вслепую: заказ может продублироваться. Сначала проверьте, не оформился ли предыдущий.
Если ошибка 500 появилась на вашем ресурсе, действуйте по порядку:
.htaccess. Неверная строка в этом файле - частая причина 500. Временно переименуйте его и проверьте, ушла ли ошибка; если да - ищите ошибку построчно.memory_limit и max_execution_time, если в логе видно нехватку памяти или таймаут.Если ничего не помогло и причина так и не нашлась, обратитесь к хостинг-провайдеру или разработчику сайта: у них есть доступ к более подробным журналам.
Когда ничего не помогает, а сайт нужно поднять срочно, выручает резервная копия - откат к рабочему состоянию до сбоя. Это возможно, только если вы регулярно делаете бэкапы файлов и баз данных. Поэтому резервное копирование стоит настроить заранее, ещё до первого сбоя: подробнее о подходах в обзоре технологий резервного копирования.
Что сервер не смог обработать запрос и не нашёл более точной причины. Сбой на стороне сайта или сервера, а не у посетителя.
Почти всегда сайт. Ошибка 500 возникает на сервере, поэтому исправить её может только владелец или администратор ресурса.
Обычно нет. Если это разовая перегрузка, страница заработает через минуты. Если причина в коде или настройках, всё зависит от того, как быстро её найдут по логам.
500 - общий сбой в самом приложении. 502 - шлюз получил битый ответ от вышестоящего сервера. 503 - сервер перегружен или на обслуживании. Точный код подсказывает, где искать проблему.
Если она держится долго, да: страница может выпасть из поиска, а сайт - просесть в ранжировании. Разовые ошибки, которые быстро чинят, на позиции почти не влияют.
Ошибка 500 повторяется из-за перегрузки или нехватки ресурсов?
Это сигнал, что сайту тесно на текущем железе. Инженеры ITTELO помогут подобрать сервер под вашу нагрузку, соберут и протестируют конфигурацию под задачу перед отгрузкой, с гарантией и поддержкой. На рынке серверов 11+ лет.