Nachdem die Spezifikation von HTTP 2.0 steht, dachte ich mir, dass sich ein Blick auf HTTP 2.0 mal lohnen könnte. Immerhin sollte man als Webentwickler gerade bei dieser Technologie auf dem neusten Stand sein. Also los gehts!
HTTP 2.0 bzw. mod_spdy für Apache 2.4 zu aktivieren ist gar nicht so schwer.
1 2 3 4 5 6 7 8 |
cd /usr/src/ git clone https://github.com/eousphoros/mod-spdy.git cd mod-spdy/ git checkout apache-2.4.7 cd src/ ./build_modssl_with_npn.sh chmod +x ./build/gyp_chromium make BUILDTYPE=Release |
Nachdem man diese Befehle ausgeführt hat, sollte man unter /usr/src/mod-spdy/src/out/Release/libmod_spdy.so
und /usr/src/mod-spdy/src/mod_ssl.so
die benötigten Module finden. Eine gepachte Version von mod_ssl ist hier nötig, da diese aus den Paketquellen kein NPN unterstützt, welches aber zwingend erforderlich ist, da der Browser sonst nicht erfährt, dass der Server SPDY-fähig ist.
Nun geht es daran, die Module zu installieren. Wir erstellen eine Datei unter /etc/apache2/mods-available/spdy.load
mit folgendem Inhalt:
1 2 |
# Depends: mod_ssl LoadModule spdy_module /usr/src/mod-spdy/src/out/Release/libmod_spdy.so |
Wir brauchen noch eine Datei und zwar /etc/apache2/mods-available/spdy.conf
1 2 3 |
<IfModule spdy_module> SpdyEnabled on </IfModule> |
Nun tauschen wir mod_ssl
gegen die gepatchte Version aus. /etc/apache2/mods-available/ssl.load
1 2 3 |
# Depends: setenvif mime socache_shmcb #LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so LoadModule ssl_module /usr/src/mod-spdy/src/mod_ssl.so |
Noch schnell per a2enmod spdy && a2enmod ssl
die Module aktivieren. Fertig.
Naja fast. Solltet ihr nämlich, wie die meisten, einfach nur das Paket libapache2-mod-php5 installiert haben, so wäre dieser Betrieb nicht sicher. Ihr müsst auf mod_fcgid
umsteigen. Das hängt damit zusammen, dass sich Aufrufe unter mod_php5 einen Prozess teilen können und hier wohl eine Sicherheitslücke entstehen kann.
Der Wechsel auf mod_fcgid ist aber auch ganz einfach:
1 2 |
sudo a2dismod php sudo apt-get install php5 php5-cgi libapache2-mod-fcgid |
In die /etc/apache2/apache2.conf fügt ihr noch an das Ende hinzu:
1 2 3 4 5 |
<Location /> AddHandler fcgid-script .php Options +ExecCGI FcgidWrapper /usr/bin/php-cgi .php </Location> |
Jetzt noch ein sudo apache2 restart
. Jetzt sind wir aber fertig!
Übrigens läuft dieser Blog, bis jetzt, problemlos mit SPDY.
Update 07.03.2015: Leider scheint der Apache sich ab und zu aufzuhängen, wenn SPDY aktiviert ist. Deswegen musste ich das Modul erst mal wieder deaktivieren, allerdings reicht es, um mit HTTP 2.0 mal herum zu experimentieren.
Leider lässt sich spdy nicht aktivieren
ERROR: Module mod_ssl does not exist!
ERROR: Could not enable dependency mod_ssl for spdy, aborting
Es heißt ja eigentlich ssl ond nicht mehr mod_ssl oder
Gibt es irgendwas was ich da machen kann?
Hi,
eigentlich sollte es genau so funktionieren wie beschrieben. Was hast du den für eine Distro und welche Version?
Zudem kann ich dir nur empfehlen, spdy in Verbindung mit nginx zu betreiben. Wie das geht hab ich hier erklärt:
https://www.fundkiste.com/nginx-und-spdyhttp-2-0-unter-ubuntu-14-04/
> Gibt es irgendwas was ich da machen kann?
Klar, wie du schon geschrieben hast, ändere
# Depends: mod_ssl
in der Datei spdy.load ab in
# Depends: ssl