В этой стать я расскажу вам, как уменьшить время загрузки страниц вашего сайта, для этого проведем ускорение apache с помощью mod_pagespeed и Memcached в Ubuntu 15.04. Время загрузки страницы это важный фактор в ранжировании страниц поисковыми системами. Вы можете протестировать время загрузки страницы с помощью сервиса Google PageSpeed Insights.
Pagespeed это модуль для Apache2, который оптимизирует и кеширует содержимое сайта, прежде чем оно будет передано браузеру. Mod_pagespeed использует по умолчанию файловое кеширование, в статье я расскажу как установить и настроить Mod_pagespeed,а также переключить кеш на Memcached.
Все операции я буду производить на готовом LAMP сервере под Ubuntu 15.04.
1. Установка mod_pagespeed
Для начала выясним, какую разрядность имеет операционная система сервера. Т.к. Google предоставляет .deb пакеты для 32 и 64-битных систем.
Для этого выполним следующую команду:
uname -a
В результате вы получите подобный вывод:
Скачаем и установим mod_pagespeed:
Ubuntu 64 бита:
cd /tmp
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb
dpkg -i mod-pagespeed-stable_current_amd64.deb
Ubuntu 32 бита:
cd /tmp
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.deb
dpkg -i mod-pagespeed-stable_current_i386.deb
После чего перезапустим вебсервер Apache, чтобы mod_pagespeed создал файлы конфигурации:
service apache2 restart
2. Установка Memcached
Memcached доступен в стандартных репозиториях Ubuntu и может быть установлен следующей командой:
apt-get -y install memcached
Проверим, запустился ли memcached:
netstat -tap | grep memcached
В результате увидим подобное:
root@server1:/tmp# netstat -tap | grep memcached
tcp 0 0 localhost:11211 *:* LISTEN 1687/memcached
Я выделил порт, на котором работает Memcached, а именно 11211, он нам понадобится при настройке mod_pagespeed.
Если вы хотите, чтобы memcached работал также с PHP приложениями, а не только mod_pagespeed, установите расширение для PHP:
apt-get install php5-memcached
3. Настройка mod_pagespeed для работы с Memcached.
Откроем файл конфигурации mod_pagespeed в редакторе:
nano /etc/apache2/mods-available/pagespeed.conf
И найдем строку "ModPagespeedMemcachedServers":
[….] # ModPagespeedMemcachedServers localhost:11211
[….]
Раскомментируем эту строку, удалив # в начале строки.
Сохраним файл и перезапустим вебсервер Apache:
service apache2 restart
Теперь mod_pagespeed использует Memcached для хранения кеша. Посмотреть статистику использования Memcached можно с помощью следующей команды:
echo stats | nc 127.0.0.1 11211
В результате получим следующий вывод:
root@server1:/tmp# echo stats | nc 127.0.0.1 11211
STAT pid 1687
STAT uptime 134
STAT time 1440931897
STAT version 1.4.14 (Ubuntu)
STAT libevent 2.0.21-stable
STAT pointer_size 64
STAT rusage_user 0.000000
STAT rusage_system 0.008000
STAT curr_connections 5
STAT total_connections 6
STAT connection_structures 6
STAT reserved_fds 20
STAT cmd_get 0
STAT cmd_set 0
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 0
STAT get_misses 0
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 6
STAT bytes_written 0
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT bytes 0
STAT curr_items 0
STAT total_items 0
STAT evictions 0
STAT reclaimed 0
END
Прервать вывод информации можно, нажав Ctrl-C.
Также, вы можете использовать phpMemcachedAdmin и ему подобные, для просмотра статистики Memcached сервера.
Теперь протестируем скорость открытия сайта с помощью PageSpeed Insights. Первая проверка может не показать изменений т.к. кеш еще не сформирован, а вот последующие проверки должны давать хороший результат.
На этом всё 🙂