bl0bb
19.03.2013, 22:53
Bisher ist SPDY (https://developers.google.com/speed/spdy/) eher wenig verbreitet.
In der deutschen und internationalen Trackerlandschaft habe ich es erst bei 2 deutschen Trackern gesehen.
Auch andere Webseiten unterstützen es bisher fast gar nicht.
Dies finde ich eigentlich recht schade, daher möchte ich darüber ein paar Worte verlieren.
Also einfach mal lesen und testen, eure User wird es freuen ;)
Was ist SPDY?
SPDY (https://developers.google.com/speed/spdy/) ist ein von Google entwickeltes TCP basiertes Netzwerkprotokoll, welches das bisherige HTTP/1.0 erweitert.
Durch das Multiplexen bei der Datenübertragung, können beliebig viele Dokumente über eine einzelne TCP Verbindung parallel übertragen werden.
Damit wird der Seitenaufbau rasant beschleunigt (+100% und mehr). Nice :)
OK, wer Multiplexen nicht versteht:
Nehmt einfach eine Seite die viele Bilder enthält (z.B. die browse.php mit den ganzen Kategorie-Icons, falls diese nicht gerade in einem Sprite stecken). Es werden alle Bilder gleichzeitig heruntergeladen, anstatt wie bei HTTP/1.0 Stück für Stück.
Dies gilt natürlich auch für .js oder .css Dateien.
Der Download aller angeforderten Ressourcen erfolgt gleichzeitig. Das spart natürlich die ganzen Locks während des Aufbaus, was sich wirklich bemerkbar macht.
Wie sieht es mit der Unterstützung aus?
Alle modernen Browser unterstützen SPDY (https://developers.google.com/speed/spdy/).
Falls nicht ist es auch nicht so schlimm. Kommt ein Browser nicht mit HTTP/1.1 klar, erfolgt ein Fallback auf HTTP/1.0 und der User kann wie gewohnt weiter auf der Seite surfen.
SPDY (https://developers.google.com/speed/spdy/) funktioniert nur mit einer SSL Verbindung!
Wie stelle ich SPDY zur Verfügung?
Dafür muss man natürlich etwas tun, aber der Aufwand hält sich in Grenzen.
[Befehle für Debian Squeeze]
SPDY (https://developers.google.com/speed/spdy/) benötigt OpenSSL 1.0.1+
Daher einfach die aktuellste Stable kompilieren: OpenSSL Sources (http://www.openssl.org/source/)
wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz
tar -xzf openssl-1.0.1e.tar.gz
cd openssl-1.0.1e
./config --prefix=/usr zlib-dynamic --openssldir=/etc/ssl shared
make
make test
make install
Beispiel nginx
Eine aktuelle Installationsanleitung findet man hier (http://nginx.org/patches/spdy/README.txt). Diese ändert sich auch mit jeder neuen nginx Version (Patch Parameter, ./configure options).
Das SPDY (https://developers.google.com/speed/spdy/) Update erfolgt zeitnah zum neuen nginx Release.
wget http://nginx.org/download/nginx-1.3.14.tar.gz #nginx source laden
tar -xzf nginx-1.3.14.tar.gz #entpacken
cd nginx-1.3.14 #ins nginx Verzeichnis wechseln
wget http://nginx.org/patches/spdy/patch.spdy.txt #spdy patch laden
patch -p1 < patch.spdy.txt #patchen
./configure --with-http_ssl_module --with-http_spdy_module #nginx konfigurieren
make && make install #nginx kompilieren und installieren
Natürlich kann das ./configure auch noch andere options enthalten. Wichtig ist nur das --with-http_ssl_module und --with-http_spdy_module ergänzt werden.
Ist nginx installiert muss der server Block erweitert werden:
server {
listen 443 ssl spdy;
...
}
Und schon ist SPDY für diesen Server aktiviert.
Optionale Konfigurationsmöglichkeiten für den http/server Block stehen hier (http://nginx.org/patches/spdy/README.txt) (weiter unten). Die Defaultwerte sind allerdings völlig ausreichend.
alle SPDY Patches (http://nginx.org/patches/spdy/)
Beispiel Apache
cd /tmp #ins tmp Verzeichnis wechseln
wget https://dl-ssl.google.com/dl/linux/direct/mod-spdy-beta_current_amd64.deb #mod_spdy für 64bit laden
wget https://dl-ssl.google.com/dl/linux/direct/mod-spdy-beta_current_i386.deb #mod_spdy für 32bit laden
apt-get install apache2 #Apache installieren
a2enmod ssl #SSL aktivieren
dpkg -i mod-spdy-*.deb
apt-get -f install #mod_spdy installieren
/etc/init.d/apache2 restart #Apache Restart
Die SPDY Config findet man in /etc/apache2/mods-available/spdy.conf, aber auch hier sind die Default Werte völlig ausreichend.
Fertig.
mod_spdy Binaries (https://developers.google.com/speed/spdy/mod_spdy/)
mod_spdy Konfiguration (https://developers.google.com/speed/spdy/mod_spdy/install)
Und funktioniert es?
Einfach einen SPDY (https://developers.google.com/speed/spdy/)-fähigen Browser nehmen:
Chrome - Addon "SPDY indicator"
Firefox - Addon "SPDY indicator"
Opera - Addon "SPDY indicator"
Also testet es ruhig mal aus ;)
Viel Spaß
In der deutschen und internationalen Trackerlandschaft habe ich es erst bei 2 deutschen Trackern gesehen.
Auch andere Webseiten unterstützen es bisher fast gar nicht.
Dies finde ich eigentlich recht schade, daher möchte ich darüber ein paar Worte verlieren.
Also einfach mal lesen und testen, eure User wird es freuen ;)
Was ist SPDY?
SPDY (https://developers.google.com/speed/spdy/) ist ein von Google entwickeltes TCP basiertes Netzwerkprotokoll, welches das bisherige HTTP/1.0 erweitert.
Durch das Multiplexen bei der Datenübertragung, können beliebig viele Dokumente über eine einzelne TCP Verbindung parallel übertragen werden.
Damit wird der Seitenaufbau rasant beschleunigt (+100% und mehr). Nice :)
OK, wer Multiplexen nicht versteht:
Nehmt einfach eine Seite die viele Bilder enthält (z.B. die browse.php mit den ganzen Kategorie-Icons, falls diese nicht gerade in einem Sprite stecken). Es werden alle Bilder gleichzeitig heruntergeladen, anstatt wie bei HTTP/1.0 Stück für Stück.
Dies gilt natürlich auch für .js oder .css Dateien.
Der Download aller angeforderten Ressourcen erfolgt gleichzeitig. Das spart natürlich die ganzen Locks während des Aufbaus, was sich wirklich bemerkbar macht.
Wie sieht es mit der Unterstützung aus?
Alle modernen Browser unterstützen SPDY (https://developers.google.com/speed/spdy/).
Falls nicht ist es auch nicht so schlimm. Kommt ein Browser nicht mit HTTP/1.1 klar, erfolgt ein Fallback auf HTTP/1.0 und der User kann wie gewohnt weiter auf der Seite surfen.
SPDY (https://developers.google.com/speed/spdy/) funktioniert nur mit einer SSL Verbindung!
Wie stelle ich SPDY zur Verfügung?
Dafür muss man natürlich etwas tun, aber der Aufwand hält sich in Grenzen.
[Befehle für Debian Squeeze]
SPDY (https://developers.google.com/speed/spdy/) benötigt OpenSSL 1.0.1+
Daher einfach die aktuellste Stable kompilieren: OpenSSL Sources (http://www.openssl.org/source/)
wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz
tar -xzf openssl-1.0.1e.tar.gz
cd openssl-1.0.1e
./config --prefix=/usr zlib-dynamic --openssldir=/etc/ssl shared
make
make test
make install
Beispiel nginx
Eine aktuelle Installationsanleitung findet man hier (http://nginx.org/patches/spdy/README.txt). Diese ändert sich auch mit jeder neuen nginx Version (Patch Parameter, ./configure options).
Das SPDY (https://developers.google.com/speed/spdy/) Update erfolgt zeitnah zum neuen nginx Release.
wget http://nginx.org/download/nginx-1.3.14.tar.gz #nginx source laden
tar -xzf nginx-1.3.14.tar.gz #entpacken
cd nginx-1.3.14 #ins nginx Verzeichnis wechseln
wget http://nginx.org/patches/spdy/patch.spdy.txt #spdy patch laden
patch -p1 < patch.spdy.txt #patchen
./configure --with-http_ssl_module --with-http_spdy_module #nginx konfigurieren
make && make install #nginx kompilieren und installieren
Natürlich kann das ./configure auch noch andere options enthalten. Wichtig ist nur das --with-http_ssl_module und --with-http_spdy_module ergänzt werden.
Ist nginx installiert muss der server Block erweitert werden:
server {
listen 443 ssl spdy;
...
}
Und schon ist SPDY für diesen Server aktiviert.
Optionale Konfigurationsmöglichkeiten für den http/server Block stehen hier (http://nginx.org/patches/spdy/README.txt) (weiter unten). Die Defaultwerte sind allerdings völlig ausreichend.
alle SPDY Patches (http://nginx.org/patches/spdy/)
Beispiel Apache
cd /tmp #ins tmp Verzeichnis wechseln
wget https://dl-ssl.google.com/dl/linux/direct/mod-spdy-beta_current_amd64.deb #mod_spdy für 64bit laden
wget https://dl-ssl.google.com/dl/linux/direct/mod-spdy-beta_current_i386.deb #mod_spdy für 32bit laden
apt-get install apache2 #Apache installieren
a2enmod ssl #SSL aktivieren
dpkg -i mod-spdy-*.deb
apt-get -f install #mod_spdy installieren
/etc/init.d/apache2 restart #Apache Restart
Die SPDY Config findet man in /etc/apache2/mods-available/spdy.conf, aber auch hier sind die Default Werte völlig ausreichend.
Fertig.
mod_spdy Binaries (https://developers.google.com/speed/spdy/mod_spdy/)
mod_spdy Konfiguration (https://developers.google.com/speed/spdy/mod_spdy/install)
Und funktioniert es?
Einfach einen SPDY (https://developers.google.com/speed/spdy/)-fähigen Browser nehmen:
Chrome - Addon "SPDY indicator"
Firefox - Addon "SPDY indicator"
Opera - Addon "SPDY indicator"
Also testet es ruhig mal aus ;)
Viel Spaß