Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
schwerpunkt<br />
Nginx<br />
D Nginx auf einem<br />
Sheevaplug ist in der<br />
Lage, knapp 100 Verbindungen<br />
pro Sek<strong>und</strong>e<br />
mit FastCGI zu<br />
handhaben.<br />
lIstIng 8<br />
# HTTPS<br />
server {<br />
listen 443;<br />
server_name haus3.no‐ip.org;<br />
ssl on;<br />
rationsverzeichnis die bereits vom<br />
<strong>Apache</strong> bekannten Ordner sitesavailable<br />
<strong>und</strong> sites‐enabled anlegen.<br />
So können Sie später Sites<br />
einfach an- oder abschalten oder<br />
deren Konfiguration ändern. Die<br />
Parameter für einen virtuellen<br />
Server finden sich beispielhaft in<br />
Listing 7 (vorige Seite).<br />
# openssl genrsa ‐out website.key 1024<br />
# openssl req ‐new ‐key website.key ‐out website.csr<br />
# openssl x509 ‐days 1095 ‐signkey website.key ‐in<br />
website.csr ‐req ‐out website.crt<br />
lIstIng 9<br />
ssl_certificate /home/falko/website.crt;<br />
ssl_certificate_key /home/falko/website.key ;<br />
ssl_session_timeout 5m;<br />
ssl_protocols SSLv3 TLSv1;<br />
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+<br />
LOW:+SSLv3:+EXP;<br />
ssl_prefer_server_ciphers on;<br />
location / {<br />
root /var/www/haus3/;<br />
index index.php; #index.html index.htm;<br />
}<br />
# pass the PHP scripts to FastCGI server listening on<br />
127.0.0.1:9000<br />
location ~* \.php$ {<br />
fastcgi_pass unix:/tmp/php.socket;<br />
fastcgi_index index.php;<br />
include fastcgi_params;<br />
}<br />
}<br />
lIstIng10<br />
$ httperf ‐‐hog ‐‐server 192.168.10.111 ‐‐uri=/index.php<br />
‐‐num‐conn 20000 ‐‐rate 150 ‐‐timeout 5<br />
Im Beispiel handelt es<br />
sich um einen domainbasierten<br />
virtuellen<br />
Host, der PHP-Seiten<br />
ausliefert <strong>und</strong> dessen<br />
Seiten im Verzeichnis<br />
/var/www/blog liegen.<br />
Die Rewrite-Rule besagt,<br />
dass der Server<br />
bei allen angefragten<br />
Dateien, die nicht existieren,<br />
auf die index.php<br />
umleitet. Das Flag last<br />
teilt Nginx mit, dass keine weiteren<br />
Rewrite-Direktiven folgen.<br />
SSL-Verschlüsselung<br />
In Zeiten, in denen immer mehr<br />
Gauner ihr Unwesen im Web treiben,<br />
bietet es sich für manche Seiten<br />
an, abhörsicher mit dem Client<br />
zu kommunizieren. Hier greift<br />
das HTTPS-Protokoll, das die Daten<br />
per SSL verschlüsselt. Dergleichen<br />
richten Sie mit Nginx fast<br />
ebenso schnell <strong>und</strong> einfach ein<br />
wie alles andere, allerdings fallen<br />
einige Vorarbeiten an: Zuerst erstellen<br />
Sie die nötigen Schlüssel<br />
<strong>und</strong> Zertifikate. Listing 8 zeigt die<br />
erforderlichen Schritte, um ein<br />
selbst signiertes Zertifikat zu erstellen,<br />
das drei Jahre lang gilt.<br />
Alternativ verwenden Sie die Daten<br />
einer Zertifikatstelle.<br />
Um nun HTTPS für eine entsprechende<br />
Seite zu aktivieren,<br />
erweitern Sie deren Server-Abschnitt<br />
um mindestens drei Zeilen,<br />
die Nginx den Pfad zu den<br />
Schlüsseln weisen. In der Vorgabe<br />
nutzt der Server den Port 443 zur<br />
Kommunikation via HTTPS, sodass<br />
es den Parameter listen anzupassen<br />
gilt. Listing 9 zeigt, wie<br />
Sie einen virtuellen Server mit<br />
HTTPS-Unterstützung <strong>aufsetzen</strong>.<br />
Neben dem zu verwendenden<br />
Schlüssel <strong>und</strong> Zertifikat sind auch<br />
die unterstützten Protokolle <strong>und</strong><br />
Chiffren angegeben.<br />
Startskript <strong>und</strong> Tests<br />
Haben Sie Nginx nicht aus dem<br />
Paketrepository gezogen, kommt<br />
schnell der Wunsch nach einem<br />
Startskript auf, das den täglichen<br />
Einsatz deutlich vereinfacht. Eine<br />
entsprechende Datei [5] haben<br />
Sie leicht erstellt, via chmod 755<br />
/ etc/init.d/nginx <strong>und</strong> rcupdate‐rc.d<br />
nginx defaults angepasst <strong>und</strong> den<br />
zu startenden Diensten der Runlevels<br />
hinzugefügt.<br />
Um die Leistungsfähigkeit der<br />
neuen Site zu testen, bieten sich<br />
Werkzeuge wie Httperf [6] an, die<br />
den Server mit Anfragen traktieren<br />
<strong>und</strong> messen, was er leistet.<br />
Das Werkzeug ist zwar alt, genügt<br />
aber völlig, um die Auswirkungen<br />
von Parameteränderungen zu<br />
verfolgen. Listing 10 zeigt eine<br />
Kommandozeile, bei der Httperf<br />
150 Verbindungen pro Sek<strong>und</strong>e<br />
zum Server 192.168.10.111 aufbaut,<br />
die index.php abruft <strong>und</strong> aufhört,<br />
sobald 20 000 Verbindungen<br />
voll sind (Abbildung D).<br />
Fazit<br />
Bei Nginx handelt es sich um einen<br />
Webserver, der <strong>Apache</strong> durchaus<br />
das Wasser reichen kann.<br />
Leichte Konfiguration <strong>und</strong> hohe<br />
Performance sind nur zwei Gründe,<br />
die für das Programm als<br />
<strong>Apache</strong>-Ersatz sprechen. Wer den<br />
Indianer unbedingt braucht, etwa<br />
weil er ein laufendes System nicht<br />
ändern will, dem bietet sich Nginx<br />
als Reverse Proxy an.<br />
Neben den hier erwähnten Einstellungen<br />
lohnt es sich, einige<br />
zusätzliche Module wie RealIP,<br />
GeoIP oder Memchached genauer<br />
zu betrachten, um alle Möglichkeiten<br />
des Webservers aus Russland<br />
auszuschöpfen. (agr) n<br />
Info<br />
[1] Nginx: http:// nginx. net<br />
[2] Netcraft Webserver Survey 01/ 2011: http://<br />
news. netcraft. com/ archives/ 2011/ 01/ 12/ j<br />
anuary-2011-web-server-survey-4. html<br />
[3] Nginx-Quellcode:<br />
http:// nginx. org/ en/ download. html<br />
[4] Google Perftools: http:// code. google. com/<br />
p/ google-perftools/<br />
[5] Nginx-Startskript:<br />
http:// doku. sprachenzentrum. hu-berlin. de/<br />
wikka. php? wakka=ServerNginx<br />
[6] Httperf: http:// www. hpl. hp. com/ research/<br />
linux/ httperf/<br />
32 04 | 11<br />
www.linux-user.de