Wie man Apache mit mod_pagespeed und Memcached auf Ubuntu 16.04 beschleunigt.
Dieses Tutorial zeigt Ihnen, wie Sie die Seitenladezeiten Ihrer Website verbessern können, indem Sie das Google mod_pagespeed-Modul für Apache in Verbindung mit dem schnellen In-Memory-Cache Memcached auf Ubuntu 16.04 (Xenial Xerus) verwenden. Die Seitenladezeit ist ein wichtiger Faktor, um gute Rankings in Suchmaschinen zu erhalten, Sie können die aktuelle Ladezeit z.B. mit dem Google PageSpeed Insights Tool oder mit den Entwicklertools im Firefox Webbrowser testen. Pagespeed ist ein Apache 2 Modul, das den Inhalt einer Website optimiert und zwischenspeichert, bevor er an den Browser übergeben wird. Das Ergebnis ist, dass die Seite geladen wird, die Systemlast auf Ihrem Server abnimmt und der Server in der Lage sein wird, mehr Seiten pro Sekunde zu liefern. Mod_pagespeed verwendet standardmäßig einen Dateisystem-Cache, in diesem Tutorial werden wir den Dateisystem-Cache durch Memcached ersetzen, einen schnellen In-Memory-Caching-Daemon, der die Ladezeit weiter verbessert. Dieses Tutorial ist mit allen Arten von Apache-Setups kompatibel, ich werde einen Ubuntu LAMP-Server als Basis verwenden, aber Sie können auch eines der ISPConfig 3 Perfect Server Tutorials verwenden.
Installation von mod_pagespeed
Google bietet mod_pagespeed.deb-Pakete für 32- und 64-Bit-Ubuntu-Installationen an.
Wie kann man herausfinden, ob man das 32bit- oder 64Bit-Paket benötigt? Führen Sie den Befehl aus:
uname -a
Das Ergebnis des Befehls sollte dem folgenden Screenshot entsprechen.
Wenn der Befehl die Zeichenkette „x86_64“ enthält, dann führt Ihr System einen 64Bit Linux-Kernel aus. In diesem Fall verwenden Sie die folgenden Befehle für 64Bit Ubuntu.
Ubuntu 64 bit (Standard für die meisten aktuellen Server)
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 bit
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
Starten Sie dann den Apache 2 neu, um die Konfiguration von mod_pagespeed zu laden.
service apache2 restart
Installation von Memcached
Der Memcached-Daemon ist in den Ubuntu-Repositories als.deb-Paket verfügbar und kann mit apt installiert werden:
apt-get -y install memcached
Führen Sie den Befehl „netstat -tap | grep memcached“ aus, um zu sehen, ob Memcached gestartet ist:
netstat -tap | grep memcached
Das Ergebnis des netstat-Befehls soll so aussehen:
Der Port wird direkt nach dem Wort localhost angezeigt. In diesem Fall ist der Port 11211, der der Standardport von Memcachedd ist. Wir müssen die Portnummer für die Konfiguration von mod_pagespeed kennen.
Wenn Sie den Memcache aus Ihren PHP-basierten Anwendungen heraus verwenden möchten und nicht nur für mod_pagespeed, dann installieren Sie die PHP Memcached Erweiterung:
apt-get -y install php-memcached
Konfigurieren Sie mod_pagespeed, um Memcached zu verwenden.
Öffnen Sie die Datei pagespeed.conf in einem Editor, ich werde hier den Nano-Editor verwenden:
nano /etc/apache2/mods-available/pagespeed.conf
und suchen Sie nach der Zeile „ModPagespeedMemcachedServers“:
[....] # ModPagespeedMemcachedServers localhost:11211 [....]
Entfernen Sie das # vor der Linie, so dass die resultierende Linie wie die untenstehende aussieht:
[....] ModPagespeedMemcachedServers localhost:11211 [....]
Wenn Sie viel Speicher in Ihrem Server haben, können Sie eine weitere Beschleunigung erreichen, indem Sie das # vor dieser Zeile entfernen:
[....] ModPagespeedCreateSharedMemoryMetadataCache "/var/cache/mod_pagespeed/" 51200 [....]
Starten Sie dann den Apache 2-Server neu, um die neue Konfiguration zu aktivieren.
service apache2 restart
Jetzt verwendet mod_pagespeed Memcached als Speicher-Backend. Du kannst Nutzungsstatistiken von Memcached mit dem Befehl nc erhalten:
echo stats | nc 127.0.0.1 11211
root@server1:/tmp# echo stats | nc 127.0.0.1 11211 STAT pid 2043 STAT uptime 177 STAT time 1461673050 STAT version 1.4.25 Ubuntu STAT libevent 2.0.21-stable STAT pointer_size 64 STAT rusage_user 0.008000 STAT rusage_system 0.036000 STAT curr_connections 11 STAT total_connections 12 STAT connection_structures 12 STAT reserved_fds 20 STAT cmd_get 224 STAT cmd_set 148 STAT cmd_flush 0 STAT cmd_touch 0 STAT get_hits 40 STAT get_misses 184 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 357876 STAT bytes_written 180755 STAT limit_maxbytes 67108864 STAT accepting_conns 1 STAT listen_disabled_num 0 STAT time_in_listen_disabled_us 0 STAT threads 4 STAT conn_yields 0 STAT hash_power_level 16 STAT hash_bytes 524288 STAT hash_is_expanding 0 STAT malloc_fails 0 STAT bytes 327546 STAT curr_items 127 STAT total_items 148 STAT expired_unfetched 0 STAT evicted_unfetched 0 STAT evictions 0 STAT reclaimed 0 STAT crawler_reclaimed 0 STAT crawler_items_checked 0 STAT lrutail_reflocked 0 END root@server1:/tmp#
Testen Sie nun die Geschwindigkeit Ihrer Website erneut, z.B. mit PageSpeed Insights. Wenn Ihre Website noch nicht viel Traffic hat, dann könnte es sein, dass Sie die Webseite ein paar Mal neu laden müssen, um die Caches zu füllen, bevor Sie richtige Ergebnisse erzielen.