SPDY (ausgesprochen „SPeeDY“) ist ein neues Netzwerkprotokoll, dessen Ziel es ist, das Internet zu beschleunigen. Es ist Googles Alternative zum HTTP-Protokoll und ein Kandidat für HTTP/2.0. SPDY erweitert HTTP um mehrere geschwindigkeitsbezogene Funktionen wie Stream-Multiplexing und Header-Komprimierung. Um SPDY zu verwenden, benötigen Sie einen Webserver und einen Browser (wie Google Chrome und kommende Versionen von Firefox), die beide SPDY unterstützen. mod_spdy ist ein Open-Source-Apache-Modul, das dem Apache HTTPD-Server Unterstützung für das SPDY-Protokoll hinzufügt. Dieses Tutorial erklärt, wie man mod_spdy mit Apache2 unter OpenSUSE 12.2 verwendet.
1 Vorbemerkung
SPDY läuft über HTTPS, also brauchen wir eine HTTPS-fähige Website, um SPDY zu testen. Bitte beachten Sie, dass SPDY auf HTTPS zurückgreift, wenn der Browser des Benutzers SPDY nicht unterstützt oder wenn etwas schief geht, sodass die Installation von mod_spdy Ihr bestehendes Setup nicht beeinträchtigt.
Ich gehe davon aus, dass Sie ein funktionierendes LAMP-Setup haben, wie unter Installing Apache2 With PHP5 And MySQL Support On OpenSUSE 12.2 (LAMP) beschrieben.
Bevor wir fortfahren, müssen wir SSL in Apache aktivieren:
a2enmod ssl
a2enflag SSL
systemctl restart apache2.service
Zu Testzwecken werde ich einfach die standardmäßige SSL-Website verwenden, die mit dem Apache-Paket von OpenSUSE geliefert wird (Sie müssen dies nicht tun, wenn Sie bereits eine SSL-Website auf Ihrem Server haben).
Erstellen Sie ein selbstsigniertes Zertifikat für den Standard-SSL-vhost...
openssl genrsa -des3 -out /etc/apache2/ssl.key/server.key.org 4096
openssl req -new -key /etc/apache2/ssl.key/server.key.org -out /etc/apache2/ssl.crt/server.csr
openssl x509 -req -days 365 -in /etc/apache2/ssl.crt/server.csr -signkey /etc/apache2/ssl.key/server.key.org -out /etc/apache2/ssl.crt/server.crt
openssl rsa -in /etc/apache2/ssl.key/server.key.org -out /etc/apache2/ssl.key/server.key
chmod 400 /etc/apache2/ssl.key/server.key
... und aktivieren Sie den Standard-SSL-vhost:
cd /etc/apache2/vhosts.d
cp vhost-ssl.template vhost-ssl.conf
systemctl restart apache2.service
Gehen Sie zur URL der Standard-SSL-Website (z. B. https://www.example.com) und testen Sie, ob es funktioniert (ich verwende hier das standardmäßige selbstsignierte Zertifikat, deshalb habe ich eine Zertifikatswarnung, aber dieses hat keine Auswirkungen auf die Verwendung von SPDY; machen Sie sich auch keine Sorgen über den 403 Forbidden-Fehler - das passiert, weil es keine Indexdatei im Dokumentenstammverzeichnis gibt):
2 Installieren von mod_spdy
mod_spdy kann wie folgt installiert werden:
zypper install http://download.opensuse.org/repositories/Apache/openSUSE_12.2/x86_64/apache2-mod_spdy-0.9.1.5-1.1.x86_64.rpm
(Leider gibt es zum Zeitpunkt des Schreibens dieses Artikels kein mod_spdy-Paket für i386-Systeme, daher funktioniert dies nur auf x86_64-Systemen.)
Erstellen Sie als Nächstes die mod_spdy-Konfigurationsdatei /etc/apache2/conf.d/spdy.conf:
vi /etc/apache2/conf.d/spdy.conf
LoadModule spdy_module /usr/lib64/apache2/libmod_spdy.so <IfModule spdy_module> # Turn on mod_spdy. To completely disable mod_spdy, you can set # this to "off". SpdyEnabled on # In order to support concurrent multiplexing of requests over a # single connection, mod_spdy maintains its own thread pool in # each Apache child process for processing requests. The default # size of this thread pool is very conservative; you can override # it with a larger value (as below) to increase concurrency, at # the possible cost of increased memory usage. # #SpdyMaxThreadsPerProcess 30 # Memory usage can also be affected by the maximum number of # simultaneously open SPDY streams permitted for each client # connection. Ideally, this limit should be set as high as # possible, but you can tweak it as necessary to limit memory # consumption. # #SpdyMaxStreamsPerConnection 100 </IfModule> |
Weitere Informationen zu den Konfigurationsoptionen finden Sie unter https://developers.google.com/speed/spdy/mod_spdy/install.
Danach Apache neu starten:
systemctl restart apache2.service
3 Testen
Lassen Sie uns nun testen, ob SPDY funktioniert. Wir benötigen einen Browser mit SPDY-Unterstützung. z.B. Google Chrome. Öffnen Sie Chrome und laden Sie Ihre SSL-Website neu (z. B. https://www.example.com) – es ist wichtig, dass Sie sie neu laden, damit sie SPDY verwenden kann (beim ersten Laden in Kapitel 1 wurde normales HTTPS verwendet). Öffnen Sie anschließend einen neuen Tab und geben Sie die URL
einchrome://net-internals/#spdy
Wenn alles gut gegangen ist, sollte Ihr SSL-vhost jetzt in der Tabelle aufgeführt sein, was bedeutet, dass die SPDY-Unterstützung funktioniert.
(Aufgrund des Fallback-Mechanismus von SPDY auf HTTPS funktioniert Ihr SSL-vhost weiterhin in jedem anderen Browser, der SPDY nicht unterstützt.)
4 Links
- SPDY:https://developers.google.com/speed/spdy/
- Apache mod_spdy:http://code.google.com/p/mod-spdy/
- mod_spdy-Konfiguration:https://developers.google.com/speed/spdy/mod_spdy/install
- Apache:http://httpd.apache.org/
- OpenSUSE:http://www.opensuse.org/