среда, 27 августа 2014 г.

Снижение нагрузки на сервер CMS Joomla

Сам не веб мастер, но пришлось разобраться

Утром получаю письмо с не приятным словами что у меня отключили сайт


Добрый день.
Ваш сайт создавал нагрузку на нашем сервере, что мешало работе сайтов других клиентов. Отключили сайт чтобы снизить нагрузку.
Оптимизируйте работу Вашего сайта, либо рассмотрите переход на тарифный план VPS 
Информация для разработчиков, в момент повышенной нагрузки на сайте висели следующие запросы
 
24763 W 94    0.29  domain.kz          IP    GET /index.php/ru/4/10522-200614----------------
27279 W 90    0.01  domain.kz          IP   GET /index.php/en/4/73------
27333 W 88    0.00  domain.kz          IP  GET /index.php/ru/kontakty HTTP/1.0
26389 W 70    0.33  domain.kz          IP    GET /index.php/ru/sektor/5426-211212----7s--l-r--21
27471 W 70    0.01  domain.kz          IP   GET /index.php/ru/novosti/novosti/5681 HTTP/1.0
27285 W 42    0.00  domain.kz          IP    GET /index.php/ru/5/ustav HTTP/1.0
26412 W 42    0.00  domain.kz          IP   GET /index.php/ru/novosti/novosti/56 HTTP/1.0
27902 W 40    0.02  domain.kz          IP    GET /index.php/ru/sektor/70374
26235 W 36    0.36  domain.kz          IP    GET /index.php/en/46-21----
27981 W 28    0.00  domain.kz          IP    GET /index.php/ru/45 HTTP/1.0
27970 W 23    0.01  domain.kz          IP   GET /index.php/ru/novosti/novosti/5313 HTTP/1.0
27982 W 13    0.01  domain.kz          IP    GET / HTTP/1.0
 
Так как же нам оптимизировать работу Joomla, чтобы снизить нагрузку на хостинг? 

Основные методы, значительно снижающих нагрузку Joomla на хостинг

Включить кэширование в Joomla.

Что же такое кэширование joomla? Кэширование - это процесс сохранения файлов в директорию "cache", которые уже были просмотрены пользователем. Например, пользователь открыл страницу Вашего сайта и к базе данных посыпались запросы на открытие изображений, файлов CSS и т.д. Проще говоря, создается HTML страница, которая отправляется пользователю и попадает в папку "cache". Теперь при следующем переходе на эту самую страничку, запросы к базе данных (и, естественно, к Вашему хостингу) уже поступать не будут. Чтобы сократить число таких запросов к базе данных, мы включаем кэширование. Это дает сильное снижение нагрузки на хостинг, на котором находится Ваш сайт, а так же значительно увеличивает быстродействие сайта. 
Время кэширования страниц необходимо установить в зависимости от частоты наполнения материалами сайта. Если вы добавляете материалы на сайт не чаще чем раз в сутки, и время на обновление занимает не более одного часа, то смело можно ставить кэширование на 1440 минут. Если часто, то 15 минут вполне достаточно.

Как включить кэширование? 

Установить кэширование страниц можно через панель Администратора, а именно (на примере Joomla 1.5.22): 

Сайт – Настройки – Система – Кэширование: 
Включить кэширование - Да, 
Время кэширования - Х минут, 
Обработчик кэша - Файл
Сохранить. 

 

Расширения – Плагины – плагин Система-кэш: 
Использовать кэш браузера  -  Да, 
Время жизни кэша  -  (я поставил)  5 минут
Включить плагин.
Сохранить.


 

Также желательно в разделе Модули, во всех модулях установить кэширование: Использовать глобальные.

Автоматическая очистка кэша joomla значительно упростит Вам жизнь и поможет избежать ненужных разговоров с Вашим хостингом о сильной нагрузке.



Отключите ненужные расширения Joomla 

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


Включите Gzip-сжатие шаблонов сайта и сервера
 
Gzip-сжатие (html, css, js) позволит уменьшить трафик и, соответственно, нагрузку вашей Joomla.

Сайт – Настройки – Сервер – Сервер: 
GZIP-сжатие страниц - Да,
Сохранить.


 

Оптимизируйте файл robots.txt

Чтобы снизить нагрузку от роботов поисковых систем, которые скачивают страницы вашего сайта для индексации, вам необходимо задать им правила индексации, а также временную задержку на индексацию страниц. Для этого нужно создать в обычном блокноте файл robots.txt со следующим содержанием:
============================
User-agent: *
Disallow: /administrator/
Disallow: /cache/
Disallow: /components/
Disallow: /images/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/
Disallow: /xmlrpc/
Crawl-delay: 5
==============================
где Crawl-delay: 5 – это задержка в 5 секунд

Файл robots.txt необходимо разместить в корне вашего сайта.