Weitere ADMIN-Magazin Angebote

Nginx: Webserver klein und schnell

Klein, aber oho

Statistik

Viele verbreitete Monitoring-Lösungen verarbeiten die Ausgabe des Apache-Moduls »httpd mod_status« . Bei Nginx übernimmt das Modul »stub_status« eine ähnliche Rolle. Defaultmäßig fehlt es, deshalb müssen Sie es im Configure-Schritt mit »--with-http_stub_status_module« aktivieren. Haben Sie es installiert, richten Sie es mit den Einstellungen aus Listing 5 ein.

Listing 5

Modul stub_status

location /nginx_status {
        stub_status             on;
        access_log              off;
        allow                   TRUSTED.IP.ADDRESSES
        deny                    all;
}

Eine HTTP-Anfrage auf »http://Server/nginx_status« führt damit zu einer Antwort wie in Listing 6.

Listing 6

Status-Meldung

Active connections: 291
server accepts handled requests
  16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
This server has 291 active connections, has accepted and handled 16630948 connections while serving 31070465 requests...

Zusatz

Kaum eine Apache-Site kommt ohne Mod-Rewrite aus, zum Beispiel um die "hässlichen URLs" mit Query-Parameter in URLs mit gut lesbaren Pfaden umzuwandeln. Nginx hat zwar auch ein Rewrite-Modul, aber sein Syntax unterscheidet sich vom Apache-Pendant. Die ganze Wahrheit darüber verrät das Nginx-Wiki [5]. Der folgende Konfigurationscode schreibt die URLs wie beschrieben suchmaschinen- und anwenderfreundlich um:

rewrite  ^/users/(.*)$ /user.php?user=$1?↩
  last;

Eine etwas aufwändigere Variante führt eine If-Abfrage ein, um die Websitebesucher immer zur gleichen Domain weiterzuleiten:

if ($host ~* www\.(.*)) {
  set $host_without_www $1;
  rewrite ^(.*)$ ↩
  http://$host_without_www$1   permanent;
}

Für Geotargeting, also die Anpassung der ausgelieferten Webseite an den Standort des Users, gibt es ein GeoIP-Modul. Es erzeugt Variablen basierend auf der IP-Adresse des Anwenders und beruht auf den Maxmind-GeoIP-Datenbanken. Das Nginx-Modul setzt zwei Dinge voraus: die LibGeoIP und eine Maxmind-Datenbank. Die neueste LibGeoIP findet sich wie die Datenbank auf der Maxmind-Site [6], sie ist aber auch schon in vielen Distributions-Repositories enthalten. Diese beiden Zeilen, im HTTP-Kontext der Konfiguration eingesetzt, schalten das GeoIP-Modul ein:

geoip_country  GeoIP.dat;
geoip_city     GeoLiteCity.dat;

Damit stehen in Nginx die unter [7] gelisteten Variablen zur Verfügung. Häufig verwenden Webanwendungen mit Nginx beispielsweise »$geoip_country_code« , um die Requests an verschiedene Upstream-Server, je nach Land, weiter zu leiten. Um die GeoIP-Infos auch an die Backends weiterzuleiten, verwenden Sie diese Anweisung:

proxy_set_header  HTTP_GEO   $geo;

Tabelle 2 führt noch weiter Nginx-Module auf und erklärt kurz, wofür sie zuständig sind.

Tabelle 2

Nginx-Module

Modul

Funktion

HTTP Referer Filtert Requests basierend auf dem Referer.
HTTP Limit Zone Beschränkt die gleichzeitige Zahl von Verbindungen pro Client
HTTP Limit Requests Beschränkt die Zugriffshäufigkeit pro Client
User ID Liefert Cookies aus, die den User identifizieren
HTTP Addition Hängt beliebigen Text an ausgelieferte Seiten an.
FLV Flash Video-Streams
Perl Macht Perl-Code und Serverside-Includes direkt mit Nginx ausführbar
WebDAV Verarbeitet WebDAV-Anfragen durch
Substitution Textersetzung in Webseiten
Image Filter Bildverarbeitung mit dem GD-Modul
Secure Link Schützt Seiten mit einem Schlüssel vor unbefugtem Zugriff
XSLT Verarbeitet Seiten mit XSL weiter

Artikel als PDF herunterladen

Kommentare

Suche

ADMIN auf Twitter, Facebook, Xing

Auf Twitter folgen   

Unsere Partner:

hackerboard.deUnixboard