NetVision-Technik

NetVision-Technik (http://www.netvision-technik.de/forum/index.php)
-   Webserver (http://www.netvision-technik.de/forum/forumdisplay.php?f=9)
-   -   Website Boost mit HTTP/1.1 (aka SPDY) (http://www.netvision-technik.de/forum/showthread.php?t=7055)

bl0bb 19.03.2013 21:53

Website Boost mit HTTP/1.1 (aka SPDY)
 
Bisher ist 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 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.
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 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 benötigt OpenSSL 1.0.1+
Daher einfach die aktuellste Stable kompilieren: OpenSSL Sources

Code:

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. Diese ändert sich auch mit jeder neuen nginx Version (Patch Parameter, ./configure options).
Das SPDY Update erfolgt zeitnah zum neuen nginx Release.

Code:

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:

Code:

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 (weiter unten). Die Defaultwerte sind allerdings völlig ausreichend.


alle SPDY Patches


Beispiel Apache

Code:

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
mod_spdy Konfiguration


Und funktioniert es?

Einfach einen 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ß

Thunder™ 19.03.2013 21:59

klingt Interessant..

bl0bb 19.03.2013 22:02

Ist es auch, sonst hätte ich es nicht erwähnt ;)

Habe die Entwicklung kurz nach Anfang selber aus den Augen verloren und es auch vergessen. Bin vor ein paar Monaten wieder drüber gestolpert, und da jetzt der Browsersuppert bei etwa 50% liegt, lohnt es sich wirklich drüber nachzudenken (bzw. meine Seiten laufen alle mit SPDY *gg*).

Thunder™ 19.03.2013 22:06

Ich hab ehrlich gesagt so schon genug um die Ohren aber ich will mir das gerne mal auf´s Auge drücken..

Für solche Sachen bin ich immer gerne zu haben...;)

bl0bb 19.03.2013 22:11

Naja, wenn man seinen Webserver eh selber unter Kontrolle hat und auch regelmäßig wartet, beträgt der zusätzliche Aufwand ~1 Minute ;)

Thunder™ 19.03.2013 22:15

Ich kann mir gerade nicht wirklich vorstellen um wie viel eine Webseite schneller werden soll..

Es rennt ja schon ziemlich Hammer mit Proxy und so..und das ganze dann noch schneller...:D..klingt fast zu verlockend^^

bl0bb 19.03.2013 22:30

https://ist-spdy-aktiviert.de/ und dann auf "Härtetest"

Zero111 19.03.2013 23:57

wenn ich das ganze richtig gelesen haben muss man nginx neukompilieren.. oder gibt es eine möglichkeit das ganze nachträglich aufzurüsten?

Thunder™ 20.03.2013 00:21

ich glaube um neu kompilieren wird man nicht herum kommen....ich lass mich aber gerne eines besseren belehren wenn jemand nen tipp hat..

bl0bb 20.03.2013 05:41

Muss neu kompiliert werden, da ja einige Sourcedateien durch den Patch verändert werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:37 Uhr.

Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.