Форум web-мастеров phpBB3

Модификации и расширения phpBB
Регистрация ·  Логин: Пароль: Запомнить   · Забыли пароль?




Ответить на тему
Пред. тема | След. тема 
Автор Сообщение
Admin
Аватара пользователя

Карма
29
Стаж: 6 лет 1 месяц
Сообщения: 312
Россия

Ответить с цитатой

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

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

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

Ошибки 50x

Для примера я взял ошибки 50х, появление которых свидетельствует о проблемах на сервере.

500 Internal Server Error (Внутренняя ошибка сервера).
501 Not Implemented (Не реализовано).
502 Bad Gateway (Плохой шлюз).
503 Service Unavailable (Сервис недоступен).
504 Gateway Timeout (Шлюз не отвечает).

Одной из причин появления таких ошибок может быть падение php под нагрузкой. К счастью у меня после настройки nginx + WP Super Cache такое бывает очень редко.

Настройка nginx

Для начала нужно заставить nginx выдавать нашу страницу ошибки, вместо стандартной.
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /путь/к/файлу;
}
Желательно /путь/к/файлу прописывать отличающийся от пути к сайту, чтобы он был доступен только при наличии ошибки.

В этом примере все ошибки сведены к одному общему файлу. Главное установить факт появления ошибки, а детали потом смотреть в логе сервера.

Файл ошибки

Создаем файл 50x.html и добавляем туда код<html>
<head>
<title>TIgor's BloG : Error 50x page</title>
</head>
<body>
This is an error 50x.
<script type="text/javascript">var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-*********']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();</script>
<script>setTimeout('_gaq.push([\'_trackEvent\', \'Error 50x\', \'Das Error\'])',1000);</script>
</body>
</html>
Самой главной частью страницы является код Google Analytics. Через секунде после открытия страницы будет отправлено событие с сообщением об ошибке.
И вот так оно отображается в панеле:
#729

Недостатки

Во первых я не нашел в Google Analytics моментальных уведомлений о событиях. Если сайт упадет, то мгновенно об этом узнать не выйдет.

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

В третьих выскакивающие окошки с просьбой отправить письмо, уведомление в социальную сеть или другое подобное действие вызовет скорее раздражение у пользователя, чем желание помочь.
p.s Проверял, работает.
_______________________
Если нужен стиль для сайта, стучите: ICQ 560107181


Профиль  Отправить личное сообщение
Идеальный заработок для торрент-трекеров
Страница 1 из 1
Показать сообщения за:  Поле сортировки  
Ответить на тему

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron



Powered by phpBB, 9CaraTT.RU, 2012-2018.
Обратная связь
000webhost logo