26.02.2014 Aufrufe

LinuxUser Apache-Alternativen: Websites aufsetzen und pflegen (Vorschau)

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!