Поддержка услуг » База знаний » Виртуальный хостинг » Работа скриптов / Веб-сервер » Причины появления ошибки 503 (Service Temporarily Unavailable)
 Причины появления ошибки 503 (Service Temporarily Unavailable)
Решение

Каждому аккаунту на сервере выделено определенное количество процессов-рабочих, обрабытывающих запросы пользователей. Запросы поступают на сервер и становятся в очередь. Легкие запросы обрабатываются быстро, а тяжёлые проблемные — медленно, тормозя продвижение очереди. Когда длина очереди достигает определенной величины, сервер перестает принимать новые запросы, возвращая ошибку 503 (Service Temporarily Unavailable, сервис временно недоступен).

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

Передача больших статичных файлов через PHP

Большие статичные файлы лучше всего передавать напрямую, не используя для этого скрипты. На это есть две причины: во-первых, время работы скриптов ограничено, по его истечению передача файла прерывается; во-вторых, для передачи файла через PHP используется отдельный процесс-рабочий, а значит он перестаёт участвовать в механизме обработки запросов от пользователей.

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

Функциональность многих скриптов хранения файлов можно реализовать через правила mod_rewrite в файле .htaccess (например, антилич-систему).

Соединение с удаленным сервером

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

Если в PHP-скриптах используются Include-функции, загружающие части движка, расположенные на одном аккаунте, убедитесь, что в них используется локальный путь, а не URL вида «http://…». Наличие URL заставляет сервер делать дополнительный HTTP-запрос — это занимает лишний процесс-рабочий и сильно замедляет загрузку сайта.

Большое число «тяжёлых» или испорченных компонентов CMS

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

Долговыполняющееся задание mambot (для Joomla)

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

Почтовая рассылка

Запуск скрипта почтовой рассылки лучше всего расположить в системном cron'е, управление которым находится в контрольной панели. А запуск его назначить на время наименьшей нагрузки на сервер (ночь по московскому времени). При этом следует учитывать ограничения, накладываемые условиями договора-оферты относительно количества писем в час/день и временем работы PHP-скрипта.

Большое количество медленных запросов к MySQL

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

Оптимизируйте SQL-запросы.

Проиндексируйте таблицы БД по столбцам, которые используются в выборке

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

Версия PHP 5.4 и выше

После перехода с версий 5.2 5.3 на 5.4 и выше , вы можете получать ошибку 503, это может быть связано с тем, что не отключены параметры ( для отключения нужно указать = Off )


register_globals
register_long_arrays
magic_quotes_gpc 

В новых версиях PHP данные параметры удалены и не поддерживаются.




 Назад
 Интернет Хостинг Центр
 Поиск
 Свойства статьи
Главная | Регистрация | База знаний | Новости | Загрузки
Язык: