Коды ответов Apache

Материал из wiki.owlhost.net
Перейти к: навигация, поиск

В данной статье мы рассмотрим самые популярные "Ответы" сервера Apache, и рассмотрим решение основных ошибок.

Есть несколько типов ответов:

1ХХ - Сообщения в данном диапазоне представляют информационный характер, сообщают о выполнении какого либо действия на сервере.

2ХХ – Сообщения в этом диапазоне сообщают пользователю об успешном выполнении поставленной ранее задачи.

3ХХ - Пере направление. - Если код ответа выдал сообщение в данном диапазоне это значит что пользователю придется принять некоторые меры для удовлетворения данного запроса.

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

5ХХ - Ошибка сервера. Этот ответ обозначает что обнаружена внутренняя ошибка сервера, и он не сможет выполнить задачу(запрос) от клиента.

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

В HTTP есть множество кодов ошибок, при возникновении ошибки сервер выдает ее код, но при этом не каждый браузер может распознать его, из-за чего он изменяется в код понятный браузеру по этому можно сказать что для сервера и клиента есть разные виды (типы) кодов ошибок. Большинство браузеров не понимают ошибки первых 3 групп и вместо них выдают ошибку 404.


Ошибка 404 (Not Found, файл не найден):

Данная ошибка возникает при не нахождении файла, или доменного имени. Основная причина данной ошибки невнимательность пользователя. Неверно введен URL сайта или название доменного имени.

Запомните! Что ссылка http://domain.com/fail.gif и ссылка: http://domain.com/fAil.gif это абсолютно разные ссылки! 
Данное связано с тем что в *nix системах на которых работают 95% серверов учитывается регистр в названии файлов и папок. Будьте внимательны.  

Ошибка 403 (Forbidden, доступ запрещен)

Довольно часто причинной данной ошибки является отсутствие index (index.htm/html/php) файла главной страницы пользователя. Данный файл должен находится в папке доступной из Internet-a для других пользователей. Для того что бы понять где именно находится данная папка зайдите в Вашей панели управления в раздел Домены и посмотрите что написано в столбце Папка, та ссылка которая дана в этом столбце и является главной папкой вашего хостинга в которую нужно "заливать" Ваш сайт.

Для панели управления DirectAdmin файлы сайта нужно выгружать в папку /domains/ваш.сайт/public_html/
Для панели управления CPanel это папка /www/ 
Для ISPManeger /www/ваш.сайт/

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

Помните не нужно ставить права 777 для все папок и файлов это не безопасно! Стандартные права для Папок это 744, а для файлов 644  


Ошибка 500 (Internal Server Error, внутренняя ошибка сервера):

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

Не нужно при возникновении 500 ошибки во всем винить хостеров. В 70% случаев это не внимательность клиента. 

Самой распространенной ошибкой является установка не правильных прав доступа на папки и файлы. Права для каталогов не должны превышать 755, а для файлов 644, будьте внимательны не рискуйте не нужно ставить права 777 на папку с Вашим доменом(данное встречается довольно таки часто).

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

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


Ошибка 503 (Service Temporarily Unavailable, сервис временно недоступен):

При создании акаунта ему выделяется некоторое количество рабочи процессов которые будут обрабатывать запросы что поступают от пользователей. Во время поступлении запроса на сервер он становится в очередь. Запросы бывают легкие(которые быстро обрабатываются и не тормозят сервер) и тяжелые которые тормозят обработку всех процессов, и уменьшают скорость продвижения очереди. После того когда длина очереди занимает максимальное количество процессов, сервер отказывается принимать новые запросы и выдает ошибку 503 (Мол за*бали вы меня! =) )

Ниже постараюсь описать основные причины возникновения очереди и пути их решения.

1)Зависают скрипты.

Используйте хорошие скрипты на Вашем хостинге. Перед установкой удостоверитесь в коректной работе данного скрипта. Не надо ставить на популярные CMS модули от неизвестных авторов, так как они могут повлиять на работоспособность Вашего сайта в целом, а не только создать неудержимую нагрузку на сервер.

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

Для передачи(загрузки) статичных файлов большего размера не лучший вариант использование PHP скриптов.

Есть две основных причины отказаться от данного:
 1)Время работы скриптов ограничено, после истечения загрузка файла прервется и Вы зря потратите время.
 2)Для того что бы передать файл используется один из выделенных вам процессов-рабочих, и во время передачи он не участвует в обработке запросов.  

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


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

Данной функцией лучше не пользоваться во все. Но если нет возможности обойтись без нее, выставьте маленький тайм аут на ожидание ответа, и постарайтесь убедится в хорошем качестве связи с удаленным сервером. Также желательно не использовать в Ваших CMS Include функции с путями вида «http://…», так как данное занимает отдельный http запрос и замедляет загрузку сайта.

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

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

Соблюдайте ограничения которые накладываются хостерами на количество писем в день/час. А то это не только вызовет ошибку но и БАН!  

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

Если у Вас будут медленные запросы к MySQL, в каталоге logs появится файл mysql-slow.log. Данную проблему можно попробовать решить с помощью установки в Ваш движок или CMS кеширующих компонентов. Так же данную проблему может решить оптимизация SQL - запросов. Ели данные советы не помогли и нагрузка со стороны MySQL по прежнему высокая, задумайтесь о смене Вашего движка(CMS).


5)Большое число запросов к Web - серверу.

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

На Вашем сайте есть элемент, который посылает на сервер AJAX- запросы.

Боты которые сканируют Ваш сайт. Боты некоторых поисковых систем создают большое количество запросов что можно подумать о DDoS атаке на сервер.

DDoS атака.