Коды состояния · код500Внутренняя ошибка сервера

Что означает ответ 500 Внутренняя ошибка сервера, кто виноват, что делать посетителю и что — владельцу сервера.

Открыть справочник на этом коде
Что происходит

Пустая страница вместо сайта

PHP Fatal error: Uncaught Error: Call to a member function query() on null

Приложение упало при обработке правильного запроса. Снаружи все причины выглядят одинаково — белая страница или короткое «Internal Server Error», — поэтому гадать бесполезно: настоящая ошибка лежит в логе сервера, и первое действие всегда одно, посмотреть его.

Код
Кто виноватОшибка сервера
Класс5xx Ошибка сервера
01

Что делать

Если это чужой сайт

На чужом сайте сделать нельзя ничего: ошибка на сервере, и ни обновление, ни очистка кэша её не исправят. Разумно повторить через несколько минут и, если сайт важен, сообщить владельцу — 500 часто видит только тот, кто на него наткнулся.

Если это ваш сервер

Смотрите лог приложения, а не только лог веб-сервера: nginx запишет факт ошибки, а причину — язык или фреймворк. Не включайте вывод ошибок в браузер на проде: это отдаёт посторонним пути на диске, версии и куски кода. Если 500 появился после выкладки — сравните с предыдущей версией прежде, чем чинить: чаще всего дело в ней, а не в нагрузке.

02

С чем путают

502Плохой шлюз

упал не сам сервер, а апстрим за прокси: приложение вообще не ответило.

502
503Сервис недоступен

сервер жив и честно говорит «сейчас не могу»: перегрузка или обслуживание.

503
200Успешно

страница с текстом ошибки, отданная как успех, — худший вариант: её индексируют.

200
03

Как проверить

tail -n 100 /var/log/nginx/error.log

последнее, что записал веб-сервер, — обычно там же и время падения

journalctl -u php8.3-fpm -n 100 --no-pager

лог самого приложения: причина лежит здесь, а не у прокси

Найти другой код

В справочнике шестьдесят четыре кода с поиском по номеру, названию и смыслу — и разбор частых пар вроде 401 и 403.

Открыть справочник на этом кодеВсе коды

Обновлено

«» добавлен в избранное