Как сделать страницу 503
Правильная отдача заголовка 503 для отключенного сайта на DataLife Engine
Правильная отдача заголовка 503 для отключенного сайта на примере движка DataLife Engine.
Время от времени каждому Веб-мастеру приходится отключать свой сайт от пользователей на техническое обслуживание. Например обновление движка, или внесение и тестирование каких либо серьёзных изменений на сайте.
В нашей статье рассматривается пример с использованием популярного в России движка DataLife Engine (сокращенно и далее по тексту DLE). В данном движке предусмотрена специальная возможность отключить сайт на время работ, при этом если зайти на сайт, то мы получим специальную страничку с текстом оповещения, что сайт находится на техническом обслуживании.
Все кажется замечательно придумали разработчики!
Но некоторое время назад я столкнулся с одной интересной проблемой, с которой решил поделиться с Вами и соответственно внести небольшое изменение в код, для исправления той самой проблемы.
На одном из моих сайтов на движке DLE надо было провести большое обновление нескольких важных файлов. Соответственно что бы посетитель случайно не получил фатальную ошибку или в лучшем случае чистый лист, я временно перевел сайт в режим Offline. Таким образом каждый заходящий на сайт, вместо главной странички получал информацию о том, что на сайте проводится техническое обслуживание. Данное обслуживание длилось минут 10-15, но этого времени хватило что бы случилось «чудо»!
В это время на сайт пришел Робот Яндекса и проиндексировал страничку с текстом о «Техническом обслуживании», что через некоторое время привело к попаданию в индекс Яндекса главной странички с данным временным содержанием!
Почему так произошло?
Я начал разбираться, если Яндекс проиндексировал страничку, значит сайт отдает заголовок с кодом 200. Что я первым делом и проверил. Конечно в ответе сервера, при отключенном сайте я получил тот самый не верный код заголовка 200. Код 200 дает понять роботу, простыми человеческими словами: «все хорошо, страничка такая есть, можно индексировать. «.
Но постойте, сайт на техническом обслуживании! Он временно закрыт! Значит не только пользователи, но и роботы должны знать, что «Сайт временно закрыт».
И что теперь делать?
И так рассмотрим PHP код, который необходимо вставить для правильного ответа при отключенном сайте:
А вот 4-ая строка с кодом:
Куда вставить этот код в DataLife Engine что бы отдавать правильно заголовок?
Теперь открываем файл, который находится по следующему пути:
/engine/modules/offline.php
И сразу после него вставляем наш код:
Соответственно время 3600 в секундах, вы можете поставить своё.
Вот таким образом легко и просто мы грамотно оповестим как посетителей, так и поисковых роботов о том, что сайт временно не доступен и зайдите позже!
Спасибо за Внимание!
Автор данной статьи
Администратор сайта 0lik.ru
Александр
При перепечатке ссылка на источник обязательна!
Как правильно работать с «Ошибкой код 503″
Поделиться «Как правильно работать с «Ошибкой код 503″»
На любом портале периодически необходимо делать технические работы. Они заключаются в модернизации движка, внутренних изменениях или обновлении программного обеспечения. Каким образом лучше это сделать без вреда для продвижения? Для указания статуса лучше применить код 503 в http-заголовках. Появляющаяся ошибка 503 свидетельствует: “ресурс является недоступным, повторите попытку немного позже”. Как начинают себя вести поисковики?
Они обязаны действовать по разработанным правилам
«Ошибка 503» — означает, что ресурс не в состоянии обработать запрос по причине перегрузки либо проведения работ внутри сайта. Если точно знаете продолжительность вмешательства в функционирование ресурса, впишите ее в «Retry-After» (заголовок). Когда он отсутствует, пользователь определит ответ:«500» (произошла ошибка).
Возникает много непонятного. Страница, дающая код «Ошибки 503», вообще могла отсутствовать в самом индексе. Обязан ли краулер осуществлять ее обработку так, как она ранее находилась в индексе? Спустя сколько времени после блокирования допускается выбрасывание страницы? Чем это измеряется: число обращений, часами, днями? Если «robots.txt» начнет демонстрировать 503 код ошибки, есть ли необходимость проводить индексацию портала?
Вопросов много, а ответов намного меньше. «Яндекс» по 503 кодам не делает описания. Пять лет назад «Google» дал несколько советов.
Из них стало понятно:
В статье описаны результаты проведенного исследования логов анализируемого ресурса для изучения краулинга.
Проведение исследования
С целью изучения закономерности деятельности краулеров поисковые системы провели анализ:
HTTP/1.1 ошибка 503 «Service Unavailable»
«Retry-After»: 3600
Все данные фиксировались в логи.
Итоги
Что продемонстрировали логи?
Мы сделали так, чтобы «Retry-After» зашел на портал, спустя один час. Поисковик «Yandex»начал стараться заходить каждые тридцать минут и продолжает дальше это делать. Первые четыре захода произошли с секундной точностью, затем период немного поменялся.
«Yandex» отправил URL в созданную очередь краулинга (процедура анализа веб-страниц) на округленное время — заходил в 00 и 30 минут каждый следующий час.
К созданной в «Яндексе» странице (установлен 503 код).«Yandex» делал меньше попыток. За двадцать четыре часа только пять раз. Первая попытка произошла спустя пять минут, вторая — спустя одиннадцать часов (с минутной достоверностью), третья — спустя восемь часов, остальные — приблизительно спустя шесть часов.
В течение суток поисковик «Гугл» к старой странице направлялся сорок пять раз. При этом были различные промежутки. Иногда происходили перерывы между обращениями более шестидесяти минут. Делались попытки через десять минут с одного сервера.
Выводы
Совершенно недостаточно провести анализ лога для получения ответа на возникшие вопросы.
После анализа полученной информации можно сделать выводы:
Поделиться «Как правильно работать с «Ошибкой код 503″»
Создание страниц ошибок 404, 401, 503 в MODX
Сегодня мы создадим основные сервисные страницы MODX Revo, а именно — для ошибок 404, 403, 503
Создание документов и категорий
Щелкаем правой кнопкой мыши (ПКМ) по Website (находиться в дереве Ресурсы) и выбираем Создать документ (либо просто щелкаем на +)
На открывшейся странице прописываем заголовок system, выбираем пустой шаблон, убираем галку с опубликован, ставим галку напротив — не показывать в меню и переходим во вкладку настроек.
В настройках ставим галки на контейнер и очистить кэш (остальные снимаем) и сохраняем.
Это мы создали пустой не опубликованный контейнер, а в него уже поместим все наши сервисные страницы.
Создание страницы 404 ошибки в modx
Щелкаем ПКМ по нашему пустому контейнеру и выбираем создать документ.
На вкладке Настройки: снимаем все галки, замораживаем url — error404 (при условии что вы убрали расширение html и настроили ЧПУ, в противном случае прописываем error404.html) и сохраняем.
Теперь берем код из шаблона 404 ошибки, я возьму из файла page-404-style1.html вставляем в поле Содержимое, прописываем синтаксис
кто использует fenom:
Далее идем в Системные настройки — сайт — и указываем ID созданной страницы с 404 ошибкой (Страница ошибки 404 «Документ не найден» —
error_page = id страницы).
Теперь можно проверить как она отрабатывает. Для этого введем несуществующий адрес в браузере (например: site.ru/adresa-net), перейдем по нему — должна открыться страница с нашей ошибкой.
Создание страниц ошибок 401 и 503
Для 401 и 503 ошибок алгоритм точно такой же, только у 401 заголовок Доступ запрещен, а у 503 — Сайт временно не доступен (или находиться в разработке). Далее идем в Системные настройки и указываем их ID.
Что означает ошибка сервера 503 и как ее исправить
Как и любая проблема с доступом к интернет-ресурсам, ошибка 503 Service Unavailable («Сервис недоступен») может быть вызвана сбоями как на стороне пользователя, так и на стороне сервера, на котором находится сайт. Поэтому первое, что нужно сделать, если вы столкнулись с таким сообщением при посещении веб-ресурса, попробовать устранить сбой своими силами. Это намного проще и быстрее, чем пытаться донести информацию о возникших сложностях до владельца сайта.
Процедура устранения проблемы со стороны администратора веб-ресурса более сложная, но в большинстве случаев именно неправильные настройки на уровне хостинга или настроек сайта в панели управления CMS приводят к появлению ошибки сервера с кодом 503.
Устранение ошибки 503 пользователем
Возникает резонный вопрос: почему бы просто не покинуть проблемный сайт, пусть сами разбираются со своими багами? Это решение очевидное, но не совсем верное. Во-первых, вам может быть очень необходимо посетить именно этот веб-ресурс. Во-вторых, появление сигнала об ошибке доступа может говорить о том, что с вашим браузером, программным обеспечением, компьютером или другими устройствами что-то не в порядке. И тогда это уже ваша проблема, которая может повторяться систематически и при посещении других сайтов. Рассмотрим, что можно сделать самому, чтобы исправить ошибку 503, двигаясь от простого к сложному.
Если ни один из вышеприведенных способов не помог, а достучаться до сайта ну очень нужно, пишите о проблеме в техподдержку данного ресурса, приложив скриншот страницы с кодом и описанием ошибки.
Ошибка 503 может отображаться в разных форматах с дополнительными информативными сообщениями. Появление страницы «503 Service Temporary Unavailable – Сервис временно недоступен» говорит о том, что проблема носит временный характер. В этом случае пользователю рекомендуется не предпринимать никаких действий и просто дождаться, когда доступ восстановится автоматически.
Решение проблем с ошибкой 503 администратором веб-ресурса
При возникновении ошибки 503 Service Unavailable в любом ее проявлении администратор web-ресурса в первую очередь должен разобраться в причине ее появления. Игнорирование данной процедуры по принципу «само пройдет» может привести к тому, что сайт понесет глобальные потери в объеме пользовательского трафика и, как следствие, конверсии. Посетители, регулярно сталкивающиеся с проблемами доступа к определенному ресурсу, очень быстро занесут его в «игнор».
В зависимости от конкретного тарифного плана хостинга каждый сайт имеет ограничения по одновременной обработке запросов, поступающих на сервер от конечных пользователей. Более простые запросы браузеров обрабатываются практически мгновенно, сложные ожидают очереди в порядке их поступления. Количество отложенных запросов лимитировано, при превышении нормы каждый следующий отклоняется. В этом случае посетитель сайта видит на экране сообщение с кодировкой error 503.
Наиболее частые причины возникновения ошибки 503 на стороне сервера
Как видим, решение практически всех проблем, приводящих к появлению ошибки 503, достигается использованием более мощных серверов и высокоскоростного качественного хостинга. Отрицательная сторона этого способа в его затратности. Распределение пользовательского трафика неравномерно по времени, и банальный апгрейд железа не поможет полностью исключить сбои в моменты пиковых нагрузок.
Как избежать появления ошибок 503
Для начала рекомендуется провести статистический анализ через административную панель (снять логи), чтобы понять, какие процессы создают максимальную нагрузку на сервер, и произвести определенные изменения в настройках.
Уменьшение нагрузки на базу данных можно добиться следующими способами:
Оптимизация работы скриптов
Дополнительную нагрузку на сервер, приводящую к появлению ошибки 503, могут создать DDoS-атаки. Защита от них с помощью фильтрации относится к отдельной теме обсуждения.
Следует отметить, что ошибка 503, вызванная перегрузкой серверных мощностей, может пройти сама собой, без внешнего вмешательства. Чтобы понять, произошло ли исправление ситуации, достаточно периодически перезагружать сайт.
Заключение
Ошибка 503 Service Unavailable может возникнуть на любом сайте, управляемом одной из наиболее популярных CMS – WordPress (Вордпресс), Joomla (Джумла), DLE (ДЛЕ) и любой другой, использующей базы данных MySQL. Способов ее решения много, начиная от самых простых на уровне пользователя и заканчивая довольно сложными процедурами, которые должен выполнить администратор сайта.
Буду благодарен, если вы нашли нестандартный подход к устранению сбоя с кодировкой 503 и готовы поделиться своим опытом в комментариях!
Отчего возникает ошибка 503 (Service Temporarily Unavailable)?
Каждому аккаунту на сервере выделено определенное количество процессов-рабочих, обрабатывающих запросы пользователей. Запросы поступают на сервер и становятся в очередь. Легкие запросы обрабатываются быстро, а тяжелые, проблемные — медленно, тормозя продвижение очереди. Когда длина очереди достигает определенной величины, сервер перестает принимать новые запросы, возвращая ошибку 503 (Service Temporarily Unavailable — сервис временно недоступен).
Ниже описаны частые причины возникновения длинной очереди, а также пути решения этой проблемы:
Зависают скрипты
Большие статичные файлы лучше всего передавать напрямую, не используя для этого скрипты. На это есть две причины: во-первых, время работы скриптов ограничено, по его истечению передача файла прерывается; во-вторых, для передачи файла через PHP используется отдельный процесс-рабочий, а значит он перестает участвовать в механизме обработки запросов от пользователей.
Для передачи файлов напрямую, наоборот, задействуется специальный многопоточный процесс, который может обрабатывать множество потоков одновременно, не влияя на скорость загрузки сайта.
Этого лучше избегать. Если же без такого не обойтись, то необходимо выставить маленький тайм-аут на ожидание ответа и убедиться, что связь с удаленным сервером достаточно хорошая.
Если в PHP-скриптах используются Include-функции, загружающие части движка, расположенные на одном аккаунте, убедитесь, что в них используется локальный путь, а не URL вида «http://…». Наличие URL заставляет сервер делать дополнительный HTTP-запрос — это занимает лишний процесс-рабочий и сильно замедляет загрузку сайта.
Проверьте все компоненты и плагины вашей CMS, отключая их по очереди, и найдите самые тяжелые или испорченные, при работе которых загрузка сайта замедляется. По возможности откажитесь от таких компонентов, либо поищите более быстрый аналог. Также деинсталлируйте все ненужные компоненты, которые вы не используйте или использование которых необязательно.
Если среди mambot’ов присутствуют задания, которые можно перенести в системный cron, лучше всего сделать это. mambot-задания выполняются вместе с запросом пользователя, поэтому загрузка сайта происходит очень медленно, либо вообще не происходит.
Запуск скрипта почтовой рассылки лучше всего расположить в системном cron’е, управление которым находится в контрольной панели. А запуск его назначить на время наименьшей нагрузки на сервер (ночь по московскому времени). При этом следует учитывать ограничения, накладываемые условиями договора-оферты относительно количества писем в час/день и временем работы PHP-скрипта.
При наличии у вас медленных запросов, в папке logs вашего аккаунта создается файл mysql-slow.log. Информация в этом файле обновляется раз в сутки и содержит только самые проблемные SQL-запросы.
Большое число запросов к веб-серверу
Загружаемый ресурс разбит/содержит ссылки на слишком больше число файлов (картинки, таблицы стилей JS-скрипты), которые подгружаются через отдельные запросы. Постарайтесь объединять ресурсы в один файл, где это возможно.
На сайте установлен элемент, который периодически посылает на сервер AJAX-запросы (например, чат). Количество запросов зависит не только от числа посетителей, но и от их привычки открывать несколько вкладок в браузере.
Боты-индексаторы, сканирующие ресурсы сайтов (поисковые системы, Sape и другие).
Использование элементов ресурсов или скриптов на чужих сайтах (ссылки на картинки, скрипты-информеры). Используйте антилич-модули/настройки.
Если у вас не хватает знаний, вы не хотите самостоятельно исправлять работу скриптов или же просто не хотите этим заниматься, вам стоит обратить ваше внимание на услугу «Премиум-аккаунт», которая создана специально для этого.