У цій стати я розповім вам, як зменшити час завантаження сторінок вашого сайту. для цього проведемо прискорення 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-бітових систем.
Для цього виконаємо наступну команду:
В результаті ви отримаєте подібний висновок:
Тут ми бачимо "x86_64", це означає, що у нас 64-бітна система, інакше 32-бітна.Завантажити та встановити mod_pagespeed:
Після чого перезапустити вебсервер 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.
І знайдемо рядок "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 одна тисяча шістсот вісімдесят сім
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.
Тепер протестуємо швидкість відкриття сайту за допомогою PageSpeed Insights. Перша перевірка може не показати змін тому кеш ще не сформований, а ось наступні перевірки повинні давати хороший результат.
Тут все впирається в частоту процесора і оперативку тому апачік при великій кількості підключень починає активно їсти і проц і пам'ять, а pagespeed зберігає дані в memcached, який в свою чергу зберігає дані в оперативці