Содержание

Что делать, если на страницах сайта возникают ошибки сервера

В этой статье разберем, что может сделать администратор сайта, чтобы исправить ошибки сервера при доступе к веб-странице. Это пригодится тем, кто сам занимается сайтом компании без программиста в штате. 

Что такое ошибки сервера

Когда вы пытаетесь зайти на веб-сайт, браузер отправляет HTTP-запрос на сервер, где этот сайт находится. Каждый HTTP-запрос, принятый сервером, получает код состояния HTTP — трехзначное число. 

Если в этом числе первая цифра — 5, это ошибка сервера. Коды класса 5** возвращаются веб-сервером, когда он сталкивается с ошибкой и не может обработать запрос клиента.

500: Internal Server Error

Самая распространенная внутренняя ошибка сервера. Код генерируется при любой проблеме, которая не относится к ошибкам 502–524, поэтому у кода 500 много причин появления.

Причины появления:

  • ошибки в скриптах сайта, в коде CMS и их плагинов;
  • неверные директивы, указанные в файле . htaccess;
  • ошибки в конфигурационных файлах веб-сервера при использовании ручного режима настройки.

В редких случаях ошибка 500 может появиться из-за внедрения в файлы сайта вредоносного кода.

Устраняем своими силами

Проверьте логи ошибок веб-сервера. На хостинге RU-CENTER они размещены в каталоге /var/log, он открывается через панель управления хостингом → «Файловый менеджер». Так как используется веб-сервер Apache совместно с nginx, то логи размещаются в отдельных директориях: httpd и nginx соответственно.

Логи веб-сервера Apache (httpd)

Лог-файл — это текстовый файл с информационными сообщениями веб-сервера. Если ошибка связана с неверными директивами в .htaccess, с ошибками в работе CGI-скриптов или в файле конфигурации веб-сервера, вы увидите причину ошибки в логе веб-сервера и сможете ее устранить.

Доступные логи:

  • имя_сайта.access_log — лог обращений к сайту;
  • имя_сайта.error_log — лог ошибок сайта;
  • php_XY_error_log — лог ошибок веб-сервера для выбранной версии PHP;
  • файлы с расширением . gz — архивные логи за предыдущие дни.

Если не получилось

Если ошибка возникает при работе PHP-скрипта, текст ошибки в лог может не попасть. В этом случае нужна дополнительная диагностика, рекомендуем обратиться за консультацией к разработчику сайта или специалистам службы поддержки.

502: Bad Gateway

Ошибка означает, что сервер не смог обработать полученный запрос по техническим причинам.

Причины появления

  1. Веб-сервер выключен.
  2. В конфигурации веб-сервера есть ошибка.
  3. Для работы сайта недостаточно оперативной памяти или других ресурсов. Например, при DDoS-атаке на сайт, когда на обработку «паразитных» запросов тратятся ресурсы веб-сервера.
  4. Произошла ошибка при работе с памятью в скрипте, это часто встречается при использовании старых версий PHP.
  5. Время выполнения скрипта превысило установленные на сервере ограничения.

Устраняем своими силами

  • Проанализируйте уровень общей нагрузки на сервер и нагрузки в момент появления ошибки. На хостинге RU-CENTER это можно сделать в панели управления хостингом в разделе «Ресурсы» → «Статистика». Обратите внимание на пики потребления оперативной памяти.

Статистика нагрузки на сервер в панели управления хостингом RU-CENTER

  • Проверьте лог-файлы веб-сервера и сайта, как мы писали выше, посмотрите на запросы к сайту во время, когда значения были пиковыми, а также обратите внимание на их количество. Если вы обнаружите в них подозрительные сообщения, обратитесь в техподдержку хостинг-провайдера.

Если не получилось

Обратитесь к техническому специалисту, чтобы проверить оптимальность работы скриптов на сайте и оценить скорость обработки запросов. Иногда стоит отказаться от таких операций или оптимизировать их.

503: Service Unavailable

Ошибка означает, что в течение некоторого времени сервер не сможет обрабатывать запросы из-за технических неисправностей.

Причины появления

  1. Передача большого объема данных.
  2. Превышено время ожидания загрузки.
  3. Большое количество запросов к серверу.
  4. На хостинге RU-CENTER этот код может появиться при обращении к сайту, которого на хостинге нет.

Устраняем своими силами

Если на сайте все процессы (код, скрипты) работают без перебоев, вероятно, причина ошибки 503 — недостаток ресурсов. Чтобы решить проблему, может потребоваться переход на более производительный тариф или сервер. Для принятия решения проконсультируйтесь со службой поддержки и разработчиком сайта.

Если не получилось

Обратитесь в службу поддержки хостинг-провайдера или к разработчику.

504: Gateway Timeout

Серверу не хватило времени, чтобы получить ответ от другого сервера и завершить операцию. Как правило, среднее время загрузки не должно быть больше 1–3 секунд.

Причины появления

  1. Долгая обработка запроса скриптами сайта.
  2. Обработка большого количества данных.

Устраняем своими силами

Нужно проверить, что происходит на сервере в момент появления ошибки 504. Если вы обрабатываете большие объемы данных или выполняете операции, требующие длительного времени, настройте эти операции не через браузер, а с помощью планировщика заданий или по SSH.

Еще для устранения ошибки можно попробовать увеличить в настройках PHP время выполнения скрипта (max_execution_time) и время получения данных (max_input_time).

Если не получилось

Обратитесь в службу поддержки хостинг-провайдера или к разработчику.

505: HTTP Version Not Supported

Ошибка 505 появляется, если использовать версию протокола HTTP, которую не поддерживает сервер. 

Причины появления

  1. Заражение вирусом, который получил контроль над браузером или исходящим трафиком.
  2. Работа с устаревшим браузером, который не поддерживает современные версии HTTP.
  3. Сервер не поддерживает новые версии протокола, по которым проходит соединение.

Устраняем своими силами

  • Поищите вирусы с помощью вашей антивирусной программы. Вредоносные ПО могут повредить и удалить файлы, нужные браузеру для определения состояний.  
  • Обновите систему — версию ОС и/или браузера. Это поможет предотвратить не только ошибку 505, но и ряд других проблем. Если вы отключили автоматические обновления, рекомендуем скачать и установить их.

Если не получилось

Проверьте актуальность программного обеспечения на веб-сервере. Рекомендуем привлечь для этого специалиста. 

520: Web Server Is Returning an Unknown Error

Ошибка 520 может появляться, если вы используете для своего сайта сервисы Cloudflare для перенаправления трафика. Если Cloudflare не удается обработать ответ сервера, на котором размещен сайт, то он выдает эту ошибку.

Причины появления

  1. Разрыв соединения, когда запрос к серверу был успешным.
  2. Превышение размера заголовка запроса (больше 16 Кб).
  3. Ответ сервера не содержит информацию.
  4. Ответ сервера некорректен.

Устраняем своими силами

Если любое из вышеперечисленных условий исходит от веб-сервера, на котором размещен сайт, нужно обратиться в техподдержку хостинг-провайдера.

Правила ограничения скорости Cloudflare или другие запросы фильтрации иногда могут вызывать проблемы в работе сайта. Важно проверить и протестировать ваш сайт после подключения сервисов Cloudflare. Если на сервере хостинга используются системы безопасности, блокирующие запросы к сайту, обязательно укажите IP-адреса Cloudflare в белом списке, чтобы исключить вероятность блокировки запросов.

Если не получилось

Обратитесь в техническую поддержку Cloudflare.

521: Web Server Is Down

Ошибка 521 может появляться, если вы используете для своего сайта сервисы Cloudflare для перенаправления трафика. Браузер показывает ошибку 521, когда веб-сервер неожиданно обрывает соединение с Cloudflare.

Причины появления

Невозможно получить ответ от сервера.

Система безопасности веб-сервера внесла запросы Cloudflare в черный список. Это связано с тем, что система работает по принципу обратного прокси-сервера. Ваша система безопасности могла принять периодические подключения от статических IP-адресов за DDoS-атаку. Из-за этого адреса блокируются или ограничиваются по скорости.

Устраняем своими силами

Возможно, веб-сервер отключен или работает с перебоями. В таком случае:

  1. Убедитесь, что ваш веб-сервер работает нормально.
  2. Просмотрите журналы ошибок сервера, чтобы выявить причину ошибки.

Если веб-сервер или хостинг-провайдер блокируют запросы Cloudflare, внесите в белый список все диапазоны IP-адресов сервиса в брандмауэре сервера или другом программном обеспечении для защиты — для этого проконсультируйтесь со службой поддержки провайдера.

Если не получилось

Обратитесь в техническую поддержку Cloudflare.

522: Connection Timed Out

Ошибка 522 может появляться, если вы используете для своего сайта сервисы Cloudflare для перенаправления трафика. Ошибка возникает, когда превышено время ожидания ответа от веб-сервера.

Причины появления

  1. Веб-сервер не может ответить на запрос из-за высокой загруженности.
  2. Система защиты веб-сервера блокирует запросы Cloudflare.
  3. Нет доступа к веб-серверу.
  4. Некорректно указаны настройки DNS на Cloudflare: запросы отправляются по другому адресу.
  5. Неверная настройка маршрутизации между Cloudflare и веб-сервером.

Устраняем своими силами

Убедитесь, что:

  • IP-адреса Cloudflare не блокируются в брандмауэре;
  • ваш хостинг-провайдер не ограничивает скорость и не блокирует запросы от Cloudflare;
  • веб-сервер не перегружен.

Если не получилось

Обратитесь в техническую поддержку Cloudflare, чтобы устранить неисправную маршрутизацию в сети между Cloudflare и исходным веб-сервером.

524: A Timeout Occurred

Ошибка 524 может появляться, если вы используете для своего сайта сервисы Cloudflare для перенаправления трафика. Браузер покажет эту страницу, когда подключение к веб-серверу будет установлено, но его ответ превысит лимит ожидания. Cloudflare ожидает HTTP-ответ в течение 100 секунд.

Причины появления

  1. Проблемы в работе PHP-скриптов или сбой базы данных.
  2. Высокая загруженность веб-сервера.

Устраняем своими силами

Проверьте доступные ресурсы веб-сервера, включая процессор, оперативную память и общий уровень трафика. Высокий уровень использования памяти или высокая загрузка процессора могут сигнализировать о проблеме с ресурсами. Может потребоваться переход на более производительный тариф или сервер. Для принятия решения проконсультируйтесь со службой поддержки и разработчиком сайта.

Если вы регулярно отправляете HTTP-запросы, выполнение которых занимает более 100 секунд (например, экспорт больших данных), подумайте о перемещении этих длительных процессов в поддомен, который не проксируется Cloudflare.

Если не получилось

Обратитесь в техническую поддержку Cloudflare.

Ловим и исправляем «Internal Server Error» — apache2 / Хабр

Одна из самых популярных и при этом не всегда логирующаяся ошибка apache2 — «Internal Server Error». В этой статье разберу возможные причины и решения из интернета и личного опыта.

Иногда эта ошибка весьма не очевидна.

Все ситуации описаны для операционной системы Ubuntu Linux 22.10.

Ну и, конечно, первое, что вы должны сделать это попробовать перезапустить службу.

sudo systemctl restart apache2

Если это не помогло, то двигаемся дальше.

1. Конфигурация

1.1. Ошибка конфигурации веб-приложения

Прежде всего рекомендую сделать запрос к вашему сайту локально, прямо с сервера.

curl localhost:80

Если вы не видите «Internal Server Error», а видите html страницу, то 99% проблема в файлах конфигурации и настройках доступа.

Проверьте файл: /etc/apache2/sites-available/your_app.conf
где your_app.conf — название вашего файла конфирурации, либо стандартный conf файл — «000-default.conf»

Как он выглядит:

/etc/apache2/sites-available/your_app.conf

Строка «Require ip 127.0.0.1» говорит, о том, что разрешено подключение только с локального хоста.

Решение: замените строку «Require ip 127. 0.0.1» на «Require all granted»
Так же «Require all granted» должна быть в /etc/apache2/apache2.conf

/etc/apache2/apache2.conf

1.2. Старый конфигурационный файл

Возможно, создавая новый файл конфигурации веб-приложения он не был выбрал или включен.

Решение:
1. Выключаем стандартный файл конфигурации
2. Включаем свой
3. Перезагружаем apache2

a2dissite 000-default.conf 
a2ensite your_app.conf 
systemctl restart apache2 

2. Права доступа

Проблема возникает тогда, когда права файлов вашего проекта не соответствуют ожидаемым.

2.1. Владелец файлов

Файлы вашего проекта не принадлежат пользователю www-data.

Папка проекта (your_project) не принадлежит пользователю www-data

Решение:

sudo chown -R www-data:www-data your_project/

P.S. Случается так, что apache2 при установке не создаёт пользователя www-data, в этом нет ничего страшного, можно обойтись и без его создания. Права отлично функционируют и сайт работает.

2.2. Права файлов

Ошибка так же может возникать когда владелец установлен верно, но всё равно не имеет доступа к файлам из-за настроек прав доступа.

Решение:

sudo chmod -R 755 your_project/
2.3. Веб-приложение работает с файлами системы

«Internal Server Error» возникает, когда ваше веб-приложение взаимодействует с файлами системы у которых нет прав на исполнение. Звучит также странно как есть на самом деле, почему я не могу читать файлы у которых есть право на чтение? До сих пор не понимаю. Но проблема эта решается, если выдать файлам право на исполнение.

Решение:

sudo chmod -R 777 your_project/files/

3. Ошибка в коде вашего веб-приложения

Также частая ситуация, когда apache2 настроен правильно, но всё равно возникает эта нелогирующаяся ошибка «Internal Server Error», тогда следует проследить отрабатывает ли вообще ваше приложение.

Например, если оно не может подключиться к базе данных, то вы, всё равно, увидите «Internal Server Error». Стоит проверить верный ли пароль и есть ли доступ к базе данных. А возможно, что просто веб-приложение запустилось раньше базы данных, в этом случае поможет простая перезагрузка apache2.

Если ваше приложение взаимодействует с внешним ресурсом, и он оказывается не доступен или привышен лимит ожидания ответа, то вы снова увидите «Internal Server Error».

4. Переустановка apache2

Если вам не помогли все вышеуказаные действия, то возможно проблема с самим apache2, тогда нужно попробовать его переустановить:

sudo apt update
sudo apt install --reinstall apache2

Если вы не решили свою проблему, то вот еще возможные причины и направления для дальнейшего поиска.

  • Ошибка синтаксиса .htaccess. Если вы используете Apache в качестве веб-сервера, то, скорее всего, у вас есть .htaccess файл в корневом каталоге вашего сайта. Неверный синтаксис или несуществующая директива модуля может привести к ошибке 500.

  • Проблемы с плагинами и темами. Если вы используете WordPress или аналогичную CMS, ошибка 500 может появиться после обновления или изменения плагина или темы.

  • Проблемы с сервером. Поврежденная файловая система или исчерпанная память могут привести к ошибке 500.

  • Модули Node.js. Если у вас есть сайт на основе Node.js, обновление модулей может вызвать внутреннюю ошибку сервера 500.

  • Довольно часто вредоносный код, внедряемый на ваш сайт, приводит к ошибке 500.

  • Несовместимый модуль. Загрузка несовместимого модуля PHP или Apache вызывает ошибку 500.

P.S. Надеюсь, кому-то помог. Удачи.

что это такое и как его найти?

Что такое ошибка сервера 5xx?

Сервер возвращает ошибку сервера 5xx, когда ему не удается успешно выполнить запрос клиента.

5xx означает любой код состояния HTTP, начинающийся с 5 , поэтому, среди прочего, это относится к ошибкам 500 , 502 и 503 .

Ошибка сервера (5xx) часто называется «ошибкой сервера 5xx». Это означает одно и то же, и мы будем использовать их взаимозаменяемо в этой статье.

Почему вам следует беспокоиться об ошибках сервера 5xx

Ошибки сервера 5xx представляют большую проблему, потому что они напрямую вредят опыту вашего посетителя. Представьте, что у вас есть магазин электронной коммерции, и ваши посетители продолжают получать эти ошибки сервера. Как вы думаете, они будут продолжать попытки и в конечном итоге что-то купят?

Нет, они пойдут по соседству и купят у конкурентов.

А как насчет поисковых систем вроде Google? Если они получают ошибки сервера 5xx только изредка, то вам, вероятно, нечего бояться. Но если 5xx ошибки сервера сохраняются, то, скорее всего, вы увидите неуклонное снижение органического трафика.

В этой статье мы расскажем, почему ошибки сервера 5xx вредны для SEO, каковы наиболее распространенные ошибки сервера 5xx , как узнать, возвращает ли их сервер вашего сайта, что вызывает это и как исправить их.

Получать оповещения при возникновении ошибок сервера 5xx

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

Почему каждая ошибка сервера (5xx) ухудшает эффективность SEO

Мы уже знаем, что ошибки сервера 5xx очень плохо работают с пользователем. Но они также плохие новости для вашей эффективности SEO.

И вот почему:

  1. Когда сканеры поисковых систем (далее «краулеры») постоянно получают 5xx ошибок сервера при сканировании вашего сайта, они захотят избежать добавления проблем с производительностью, которые уже есть на вашем сайте, поэтому они сокращают свои усилия по сканированию. По сути, это означает, что они снижают краулинговый бюджет вашего сайта. Это приводит к тому, что ваш контент (пере)индексируется медленнее.

    Не забывайте: если ваш контент не проиндексирован, он не ранжируется.

  2. Когда поисковые роботы продолжают получать эти ошибки сервера 5xx для ваших URL-адресов, почему они должны предоставлять вашим проблемным страницам высокие результаты поиска? Любые посетители, которых они направляют к вам, скорее всего, будут иметь плохой пользовательский опыт. Таким образом, когда ошибки сервера 5xx сохраняются, Google начнет «понижать» ваши URL-адреса, назначая более низкие позиции или даже полностью удаляя их со страниц результатов своей поисковой системы (SERP).
  3. Если страницы недоступны для поисковых роботов, они не смогут (пере)индексировать их и ранжировать. Они не будут знать, о чем контент, и эти страницы не будут отображаться в результатах поиска Google.

Итог: у вас может быть лучший контент в мире и самые сильные ссылки на ваш сайт, но вам будет очень трудно ранжироваться, если ваш сайт постоянно страдает от ошибок сервера 5xx .

Наиболее распространенные ошибки сервера 5xx

Наиболее распространенные ошибки сервера 5xx :

  • 500 — внутренняя ошибка сервера : у сервера возникли проблемы с обработкой запроса; это может иметь любую из тысячи причин, часто связанных с техническими проблемами, такими как ошибки или несовместимость программного обеспечения.
  • 502 — Bad Gateway : запрос не может быть успешно выполнен, потому что восходящая служба (служба, от которой вы ожидаете ответа) не ответила правильно. Восходящая служба может работать на том же или другом компьютере и обычно состоит из компонента CGI, такого как PHP, и компонента приложения, такого как WordPress CMS.
  • 503 — Служба недоступна : сервер временно недоступен и будет снова доступен позже. Часто ошибка сервера 503 используется при обслуживании или когда сервер слишком занят.
  • 504 — Время ожидания шлюза : этот код состояния тесно связан с ошибкой сервера 502 . В случае ошибки сервера 504 сервер, работая в качестве шлюза или прокси, не получил вовремя ответ от другого сервера. Как мы упоминали выше, имейте в виду, что ваш веб-сервер также является всего лишь шлюзом. Что делать, если ваш сервер слишком долго отвечает вашему веб-серверу?
  • 509 — Превышен лимит пропускной способности : ваш веб-сайт превысил назначенные ограничения пропускной способности сервера и, таким образом, больше не доступен для публики. Это часто происходит в средах общего хостинга, когда они испытывают внезапный приток посетителей и/или поисковых роботов. Хотя эта ошибка сервера часто используется, она не указана ни в одном RFC (посмотрите сами).
  • 524 — Тайм-аут : Cloudflare CDN придумал эту ошибку сервера и показывает ее, когда исходный сервер — ваш сайт — не отвечает вовремя. Если CDN не получает ответа, они также не могут предоставить его посетителям и поисковым роботам. Это приводит к следующему экрану ошибки, с которым вы, возможно, знакомы:
Cloudflare возвращает ошибку 524

Как найти ошибки сервера 5xx

Понятно, что ошибки сервера 5xx вредны для бизнеса, но как их найти? Мы начнем с самого простого и быстрого, за которым последуют еще два: использование отчетов в Google Search Console (GSC) и анализ файла журнала.

Круглосуточный облачный мониторинг

Если ваш веб-сайт жизненно важен для вашего бизнеса, вам необходимо постоянно отслеживать его на наличие таких проблем, как эти ошибки сервера 5xx . Вы хотите быть предупреждены в случае возникновения проблем. Это именно то, что делает платформа ContentKing. Просто подключите свой сайт, начнется мониторинг, и вы будете предупреждены через Slack и/или по электронной почте, когда что-то пойдет не так:

Получайте оповещения, когда на вашем сайте возникают ошибки сервера 5xx

Позвольте нам быть сторожевым псом вашего сайта и предупреждать вас в случае возникновения проблем.

Поиск ошибок сервера 5xx в отчете GSC об индексировании

Отчет об индексировании Google Search Console очень полезен для быстрого отслеживания любых ошибок сервера, полученных Google.

  1. Войдите в Google Search Console.
  2. В левом верхнем углу выберите нужное свойство.
  3. Затем слева нажмите на Покрытие по индексу .
  4. Просмотрите категорию проблемы Ошибка , чтобы узнать, какие URL-адреса обнаружил Google.

    Полезные ресурсы

    • Документация по отчету о покрытии индекса от Google

    Найдите 5xx ошибок сервера в отчете GSC о статистике сканирования

    Отчет Google Search Console о статистике сканирования показывает вам статистику истории сканирования Google на вашем веб-сайте. В нем перечислены типы файлов, которые запрашиваются чаще всего, цель их запроса на сканирование (обновление контента или обнаружение нового контента) и — это то, что нас больше всего интересует — какой «ответ на сканирование» они получили.

    1. Войдите в Google Search Console
    2. В левом верхнем углу выберите нужное свойство.
    3. Затем прокрутите вниз и нажмите ⚙️ Настройки на левой боковой панели:

    4. На экране настроек нажмите Открыть отчет :

    5. Посмотрите под Разбивка запросов на сканирование > По ответу найдите Ошибка сервера (5XX) :

    6. Щелкните Ошибка сервера (5XX) , чтобы перейти к обзору затронутых URL-адресов. Интересно, что вполне возможно, что этот отчет покажет разные URL-адреса чем в отчете о покрытии индекса.

    Полезные ресурсы

    • Отчет о статистике сканирования, объяснение Ольги Зажечной
    • Документация по отчету о статистике сканирования от Google

    Найдите 5xx ошибок сервера в файлах журналов вашего сервера источник : журнал всех сделанных запросов и ответов сервера — файлы журнала вашего сервера.

    Хотя заполучить файлы журналов сервера может быть крайне сложно, они очень ценны, поскольку дают полную картину всех 5xx ошибки сервера, возвращенные вашим сервером.

    В конце концов, отчеты о покрытии индекса и статистике сканирования являются сводными, и они ограничены ошибками сервера 5xx, полученными Google .

    Полезные ресурсы

    • Анализ файла журнала для SEO: введение

    Что вызывает ошибки сервера 5xx?

    Существуют тысячи причин, по которым ваш сервер может возвращать ошибку сервера 5xx ; Ошибки сервера 5xx сильно различаются в пределах своего класса, и, несмотря на наличие стандартов RFC и т.п., их на усмотрение разработчиков выбрать, какая ошибка сервера 5xx наиболее применима при возникновении определенной ошибки .

    Кроме того, важно понимать, что эти ошибки сервера могут возникать на разных уровнях, например:

    1. CDN (например, Cloudflare или Akamai)
    2. Веб-сервер (например, Apache или nginx)
    3. Язык программирования (например, PHP или .NET) )
    4. Приложение (например, WordPress или Magento)
    5. Плагин (например, плагин оптимизации скорости страницы или контактной формы)

    Ниже мы рассмотрим некоторые распространенные примеры того, что может вызвать ошибки сервера 5xx , но это ни в коем случае не исчерпывающий список.

    Ошибки кода и ошибочные обновления

    Наиболее распространенная причина возникновения 500 — Internal Server Error связана с ошибками кода. Клиент делает запрос, и пока сервер обрабатывает этот запрос, ошибка вызывает некоторую проблему, и в результате сервер не может успешно выполнить запрос.

    Еще одна распространенная причина ошибки сервера 500 — неправильный запуск обновлений. Например, когда выходит новая версия вашей CMS, и вы обновляете ее, но некоторые из ваших плагинов несовместимы.

    Итак, предоставьте своим разработчикам информацию о том, с чего начать отладку. Объясните как можно подробнее, что пошло не так, и где это пошло не так.

    Серверная часть умерла

    Ваш сервер, вероятно, ответит ошибкой 502 — Bad Gateway или 504 — Gateway Timeout , если его внутренняя часть (например, компонент CGI, который запускает PHP, обеспечивающий работу вашего веб-сайта) разбился. Ваш сервер полагается на свою серверную часть для обслуживания страницы, а когда серверная часть не отвечает, он ничего не может создать.

    Недостаточно мощная или неправильно настроенная хостинговая платформа

    Если у вас недостаточно мощная или неправильно настроенная хостинговая платформа, и ваш сервер больше не может обрабатывать все запросы, он, скорее всего, вернет ответ 503 — Service Unreachable .

    Вы можете стать жертвой собственного успеха, потому что ваша PR-кампания привлекла на ваш сайт множество посетителей. Или, может быть, поисковые роботы вышли из-под контроля, постоянно взламывая ваш сайт.

    Для этой проблемы не существует универсального решения. Лучше всего обсудить это с вашими разработчиками и хостинг-провайдером. Правильное решение зависит от вашей конкретной ситуации и часто включает в себя комбинацию подрешений. Назову несколько:

    1. Обновите платформу хостинга (улучшите характеристики своего сервера).
    2. Включить кэширование.
    3. Начните использовать сеть доставки контента (CDN).
    4. Повышение производительности кода.

    А в случае плохих сканеров вы можете внедрить решение для управления ботами и настроить файл robots. txt таким образом, чтобы блокировать плохие сканеры (директива crawl-delay ) или полностью их не допускать (директива disallow ).

    Обратите внимание, что ситуация с искателем может в конечном итоге привести к 509 — превышен предел пропускной способности , ошибка сервера.

    Устранение ошибок сервера 5xx с головой на

    В какой-то момент вы обязательно столкнетесь с ошибками сервера 5xx . Самое главное, чтобы вы быстро узнали о них и быстро с ними справились. Не позволяйте ошибкам сервера 5xx повредить вашей эффективности SEO.

    Круглосуточно следите за своим веб-сайтом и используйте инструменты Google Search Console и файлы журналов вашего сервера для исследования и устранения этих проблем. Будьте непредвзяты относительно причины, по которой вы получаете эти 5xx ошибки сервера. Существуют буквально тысячи возможных причин, и они могут возникать на разных уровнях вашей архитектуры.

    Позвольте нам сделать всю тяжелую работу за вас

    Мы будем круглосуточно охранять ваш сайт и сообщать вам в случае возникновения проблем.

    Share Article Details

    Ошибки сервера 5xx — полное руководство частные сети. Ошибка 5xx означает «номер ошибки, начинающийся с 5», например 500 или 503. Ошибки 5xx — это ошибки сервера, означающие, что сервер столкнулся с проблемой и не может обслужить запрос клиента.

    Ошибки 5xx могут возникать, когда:

    • Пользователь просматривает веб-сайт, а веб-сервер испытывает ошибку
    • Программа обращается к API, и сервер API возвращает ошибку
    • Компонент распределенной системы, такой как Kubernetes, не может обрабатывать запросы сервера от других компонентов

    Наиболее распространенные ошибки 5xx:

    • 500 — внутренняя ошибка сервера
    • 501 – Не реализовано
    • 502 — Плохой шлюз
    • 503 — Служба недоступна
    • 504 — Время ожидания шлюза
    • 509 – Превышен предел пропускной способности
    • 511 — Требуется сетевая аутентификация

    В большинстве случаев клиент не может ничего сделать для устранения ошибки 5xx. Как правило, ошибка указывает на то, что на сервере возникла проблема с программным обеспечением, оборудованием или конфигурацией, которую необходимо устранить.

    Это часть обширной серии руководств по наблюдаемости.

    Что такое коды состояния HTTP

    HTTP — это протокол клиент-сервер: клиент, известный как пользовательский агент, подключается к серверу и отправляет запросы. Сервер получает каждый запрос, обрабатывает его и возвращает ответ. Обычно между клиентом и сервером есть посредники, известные как прокси, которые передают запросы и ответы по назначению.

    HTTP-запрос выглядит следующим образом:

    • Метод указывает, какую операцию клиент хочет выполнить на сервере. Например, GET означает, что клиент хочет прочитать информацию.
    • Версия указывает, какая версия HTTP используется клиентом.

    Ответ HTTP выглядит следующим образом:

    • Версия указывает, какая версия HTTP реализована сервером.
    • Код состояния — это код ответа. Если это число, начинающееся с 5xx, ответ указывает на ошибку сервера.
    • Сообщение о состоянии представляет собой словесное описание ошибки, которое клиент может отобразить конечному пользователю.

    HTTP поддерживает следующие группы кодов ошибок:

    • 1xx информационный ответ – запрос получен и сервер продолжает работать.
    • 2xx Success – запрос получен и успешно выполнен.
    • 3xx redirection — запрос был перенаправлен на другой URL.
    • 4xx ошибка клиента — запрос был некорректным или недопустимым и не может быть выполнен.
    • 5xx ошибка сервера — проблема на сервере, не позволяющая выполнить запрос.

    Почему вас должны волновать ошибки 5xx?

    Значение ошибок 5xx для веб-администраторов

    Для владельца или разработчика веб-сайта ошибка 5xx означает, что пользователь веб-сайта попытался получить доступ к URL-адресу и не смог его просмотреть. Кроме того, если сканеры поисковых систем получают доступ к веб-сайту и получают ошибку 5xx, они могут отказаться от запроса и удалить URL-адрес из поискового индекса, что может иметь серьезные последствия для трафика веб-сайта.

    Значение ошибок 5xx для разработчиков API

    Ошибка 5xx, возвращаемая API, указывает на то, что API не работает, проходит техническое обслуживание или возникла другая проблема. Когда в конечной точке API возникает проблема, возврат кода ошибки 5xx является хорошим, ожидаемым поведением и может помочь клиентам понять, что происходит, и обработать ошибку на стороне клиента.

    В архитектурах микрослужб обычно рекомендуется делать службы устойчивыми к ошибкам в вышестоящих службах, что означает, что служба может продолжать функционировать, даже если API, на который она опирается, возвращает ошибку.

    Значение ошибок 5xx для пользователей Kubernetes

    В Kubernetes ошибка 5xx может означать:

    • Условие завершения на уровне узла — узел не работает или не может ответить на запрос.
    • Условие завершения на уровне модуля — модуль мог быть прекращен (SIGKILL) или должен быть прекращен и в настоящее время находится в льготном периоде завершения (SIGTERM).

    Узнайте больше в нашем подробном руководстве по устранению неполадок Kubernetes

    Понимание различных кодов ошибок сервера 5xx

    500 — внутренняя ошибка сервера

    Эта ошибка указывает на то, что на сервере возникла непредвиденная ситуация, которая не была специально обработана. Как правило, это означает, что запрос приложения не может быть выполнен из-за неправильной настройки приложения.

    501 — Не реализовано

    Эта ошибка указывает на то, что сервер не поддерживает функции, запрошенные клиентом, или не распознает запрошенный метод. Это может указывать на то, что сервер может учитывать этот тип ответа в будущем.

    502 — Bad Gateway

    Эта ошибка указывает на то, что сервер является прокси-сервером или шлюзом и получил недопустимый ответ от вышестоящего сервера. Другими словами, прокси-сервер не может ретранслировать запрос на целевой сервер.

    503 — Служба недоступна

    Эта ошибка указывает на то, что сервер временно не может обработать запрос, например, из-за проведения технического обслуживания или чрезмерной нагрузки.

    Сервер может указать ожидаемую продолжительность задержки в заголовке Retry-After. Если в заголовке Retry-After нет значения, этот ответ функционально эквивалентен коду ответа 500.

    504 — Время ожидания шлюза

    Эта ошибка указывает на то, что вышестоящий сервер не отвечает своевременно прокси-серверу. Это не указывает на проблему на вышестоящем сервере, а указывает только на задержку получения ответа, которая может быть связана с проблемой подключения или задержки.

    505 — Версия HTTP не поддерживается

    Эта ошибка указывает на то, что веб-сервер не поддерживает основную версию HTTP, которая использовалась в запросе. Ответ содержит сущность, указывающую, почему данная версия не поддерживается, и другие версии протокола, поддерживаемые сервером.

    506 — вариант также согласовывается

    Эта ошибка возникает при использовании прозрачного согласования содержимого — протокола, который позволяет клиентам извлекать один из нескольких вариантов данного ресурса. Код ошибки 506 указывает на ошибку конфигурации сервера, когда выбранный вариант запускает согласование содержимого, что означает, что он не подходит в качестве конечной точки согласования.

    507 — Insufficient Storage

    Эта ошибка означает, что клиентский запрос не может быть выполнен, так как сервер не может сохранить представление, необходимое для завершения запроса. Это временное состояние, как ошибка 503. Обычно это связано с ограничениями ОЗУ или дискового пространства на сервере.

    508 — обнаружена петля

    Эта ошибка возникает в контексте протокола WebDAV. Это указывает на то, что сервер прервал клиентскую операцию, поскольку обнаружил бесконечный цикл. Это может произойти, когда клиент выполняет запрос WebDav с глубиной: бесконечность.

    509—Превышено ограничение пропускной способности

    Эта ошибка означает, что запрос превысил ограничение пропускной способности, установленное администратором сервера. Конфигурация сервера определяет интервал проверки пропускной способности, и только после этого интервала лимит сбрасывается. Запросы клиентов будут продолжать завершаться сбоем до тех пор, пока ограничение пропускной способности не будет сброшено в следующем цикле.

    510 — не расширен

    Эта ошибка указывает на то, что клиент не соблюдает политику доступа к запрошенному ресурсу. Сервер предоставит информацию, необходимую клиенту для расширения доступа к ресурсу.

    511 — требуется сетевая аутентификация

    Эта ошибка означает, что доступ к ресурсу требует авторизации. Ответ должен содержать ссылку на ресурс, который позволяет пользователям аутентифицировать себя.

    Причины ошибок сервера 5xx

    Ошибки 5xx могут возникать на нескольких уровнях серверной среды. В веб-приложении эти уровни включают:

    • Сеть распространения контента (CDN)
    • Веб-сервер (например, Apache)
    • Среда веб-разработки (например, PHP)
    • Система управления контентом (например, WordPress)
    • Плагины, работающие в CMS

    В приложении Kubernetes эти уровни включают:

    • Балансировщик нагрузки или сервисная сетка
    • Услуги
    • Блоки
    • Контейнеры
    • Приложения, работающие в контейнерах

    Вот несколько распространенных причин ошибок сервера 5xx, независимо от типа приложения:

    • Ошибки кода — приложение, обслуживающее запрос, испытывает ошибку из-за внутренней ошибки.
    • Обновления — приложение было обновлено, и новая версия не может корректно обслужить запрос.
    • Несовместимости — приложение несовместимо с другим программным обеспечением на хосте или с оборудованием на хосте.
    • Проблемы с операционной системой — произошел сбой, повреждение или неправильная настройка операционной системы.
    • Аппаратные проблемы — аппаратный сбой или неправильная конфигурация на хосте.
    • Внутренний сбой — внутренний компонент, на который полагается приложение, вышел из строя или не отвечает.
    • Недостаточно ресурсов — у хоста может не хватить ресурсов для обслуживания текущей загрузки приложения.
    • Недостаточная пропускная способность — пропускная способность сети хоста может быть исчерпана текущей нагрузкой приложения.

    Устранение ошибок 5xx

    Отладка сценариев на стороне сервера в веб-приложениях
    Ошибки сервера 5xx часто вызываются пользовательскими сценариями, которые вы запускаете на веб-сервере. Вот несколько вещей, которые вы должны проверить, если ваше веб-приложение возвращает ошибку 5xx:

    • Проверить права доступа к серверу — у вашего скрипта может не быть прав на выполнение необходимых операций с файлом или папкой. Например, сценарию может потребоваться запись файлов, но он может не иметь разрешения на запись в свою папку.
    • Проверить время ожидания сценария — возможно, время ожидания сценария истекло. Ошибки кодирования или другие проблемы могут привести к тому, что сценарий будет использовать чрезмерные ресурсы или зациклится.
    • Проверка таймаутов сервера — в некоторых случаях сам скрипт работает нормально, но сервер работает некорректно — например перезагружается или отключается от сети.
    • Проверить наличие ошибки .htaccess — на веб-сервере Apache файл .htaccess определяет конфигурацию веб-сервера в определенном каталоге. Ошибка кодировки в файле .htaccess может привести к 500 ошибкам.
    • Проверить наличие ошибок, связанных со скриптом — включить ведение журнала ошибок в вашей веб-инфраструктуре, чтобы определить, что не так с пользовательским скриптом. Могут быть ошибки, возвращенные средой выполнения или зарегистрированные самим сценарием.
    • Проверка на наличие ошибок, характерных для сервера — проконсультируйтесь с хостинг-провайдером или администратором сервера, чтобы узнать, знакомы ли они с ошибкой, вызванной конкретным сервером или компонентом, взаимодействующим с сервером.

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

    В документации NGINX рекомендуется интересный метод отладки ошибок 5xx на сервере NGINX, когда он используется в качестве обратного прокси-сервера или балансировщика нагрузки, — настройка специального сервера отладки и направление на него всех запросов об ошибках. сервер. Сервер отладки является копией рабочего сервера, поэтому он должен возвращать те же ошибки.

    У такого подхода есть несколько преимуществ:

    • Сервер отладки получает только запросы об ошибках, поэтому его журналы будут содержать только ошибки, что упрощает их исследование и устранение.
    • Сервер отладки не нуждается в высокой производительности, поэтому можно включить все средства ведения журналов и диагностики, включая трассировку стека и профилирование приложений.
    • Вы можете использовать параметр max_conns, чтобы ограничить количество запросов, направляемых на сервер отладки, чтобы не перегрузить его в случае внезапного всплеска ошибок.
    • Ошибки, возникающие из-за проблем с ресурсами на рабочем сервере, легко определить, если запрос возвращает ошибку на рабочем сервере, но нормально работает на отладочном сервере.

    Вы можете использовать следующую конфигурацию для настройки сервера приложений и маршрутизации ошибок на сервер отладки:

     upstream app_server {
        сервер 172.16.0.1;
        сервер 172.16.0.2;
        сервер 172.16.0.3;
    }
     
    вышестоящий debug_server {
        сервер 172.16.0.9 max_conns=20;
    }
    сервер {
        слушать *:80;
        расположение / {
            proxy_pass http://app_server;
            proxy_intercept_errors включен;
            error_page 500 503 504 @debug;
        }
     
        местоположение @отладка {
            proxy_pass http://debug_server;
            access_log /var/log/nginx/access_debug_server. log подробный;
            error_log /var/log/nginx/error_debug_server.log;
        }
    }
     

    Отладка ошибок 5xx в узлах Kubernetes

    Существуют две распространенные ошибки 5xx, возвращаемые узлом Kubernetes, — завершение на уровне узла и завершение на уровне модуля.

    События завершения на уровне узла

    Узлы могут возвращать ошибки 5xx, если автоматизированный механизм или администратор-человек вносит изменения в узлы без предварительного удаления из них рабочих нагрузок Kubernetes. Например, следующие действия могут привести к ошибке 5xx на узле:

    • Администратор, выполняющий обслуживание узла
    • Администратор перезапускает узел
    • Масштабирование облачной службы и завершение работы узла
    • Процесс на узле пытается перезапустить или завершить работу

    Чтобы диагностировать и устранить ошибку 5xx на узле:

    1. Определите, был ли узел отключен или изменен сотрудником или внешним процессом.
    2. Проверьте, работает ли узел, и если нет, перезапустите его и убедитесь, что он снова присоединился к кластеру.
    3. Войдите в узлы и просмотрите журналы, чтобы узнать, что вызвало сбой или неправильное поведение узла.

    Узнайте больше в нашем руководстве по узлам Kubernetes

    События завершения на уровне модуля

    Когда модуль завершается из-за выселения из узла, происходит следующий процесс:

    1. Плоскость управления Kubernetes указывает kubelet завершить работу модуля.
    2. kubelet указывает операционной системе отправить сигнал SIGTERM (15) всем контейнерам, работающим в поде.
    3. Существует настраиваемый льготный период, в течение которого приложения могут корректно отключать и закрывать существующие подключения.
    4. Операционная система отправляет сигнал SIGKILL для уничтожения всех оставшихся контейнеров в модуле.

    Ошибки 5xx могут возникать между шагами 3 и 4. Когда приложения закрываются, они могут не обслуживать определенные запросы и возвращать ошибки, которые обычно будут 502 (плохой шлюз) или 504 (тайм-аут шлюза).

    Устранение ошибок сервера Kubernetes с помощью Komodor

    Ошибки сервера 5xx указывают на проблему с узлом Kubernetes или программным обеспечением, работающим в его контейнерах. Чтобы устранить ошибку 5xx, вы должны иметь возможность связать ошибку сервера с тем, что происходит в остальной части кластера. Чаще всего вы будете проводить расследование во время пожаров на производстве. Основная проблема заключается в сопоставлении ошибок 5xx с другими событиями, происходящими в базовой инфраструктуре.

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

    • Просмотреть связи между сервисом и узлом
    • Корреляция проблем работоспособности службы и узла
    • Получите представление о распределении емкости узла, ограничениях и ограничениях
    • Выявление «шумных соседей», которые используют ресурсы кластера
    • Отслеживание изменений в управляемых кластерах
    • Получить быстрый доступ к историческим данным о событиях на уровне узла


    Помимо исправления ошибок узла, Komodor может помочь устранить различные ошибки и проблемы Kubernetes, выступая в качестве единого источника достоверной информации (SSOT) для всех ваших потребностей в устранении неполадок K8s. Комодор предоставляет:

    1. Информация об изменениях: Каждая проблема является результатом изменений. За считанные секунды мы можем помочь вам точно понять, кто, что и когда сделал.
    2. Глубина обзора: Полная временная шкала действий, показывающая все изменения кода и конфигурации, развертывания, оповещения, различия кода, журналы модулей и т. д. Все в одной панели с удобными параметрами детализации.
    3. Информация о зависимостях служб: Простой способ понять межсервисные изменения и визуализировать их влияние на всю систему.
    4. Бесшовные уведомления: Прямая интеграция с вашими существующими каналами связи (например, Slack), чтобы у вас была вся необходимая информация, когда она вам нужна.

    Если вы хотите попробовать Komodor, воспользуйтесь этой ссылкой, чтобы подписаться на бесплатную пробную версию.

    См. наши дополнительные руководства по ключевым темам наблюдаемости

    Совместно с нашими партнерами по контенту мы создали подробные руководства по нескольким другим темам, которые также могут быть полезны при изучении мира наблюдаемости.