Nginx als Frontend-Gateway mit Naxsi-Firewall

© Refat Mamutov, 123RF

Brandschutz

Über die Leistungen des Nginx-Webservers wurde schon viel geredet. Weniger bekannt sind seine Fähigkeiten beim Loadbalancing, als dynamischer Cache und als Web Application Firewall (Naxsi).
Mit den Tipps und Workshops im ADMIN-Magazin 03/2013 sichern Administratoren ihre Webserver und Netze gegen Angriffe ab: gegen Abhören sensibler Informationen, ... (mehr)

Größere Webapplikationen bestehen meistens aus mehreren Komponenten, zum Beispiel Frontend, Application Server und Daten-Backends. Dabei übernehmen Frontends einen Großteil der Verarbeitung von Anfragen und können mit richtigem Setup und Tuning dafür sorgen, dass die Zugriffszeiten verkürzt, die dahinterliegenden Application Server entlastet und vor unberechtigten Zugriffen geschützt werden.

Nginx hat sich in kurzer Zeit einen festen Stammplatz in diesem Ensemble erarbeitet und kann als Reverse Proxy, Static Server und Loadbalancer auftreten. Die freie Software überzeugt dabei mit Performance, Stabilität und geringen Anforderungen an Ressourcen. Ungefähr 30 Prozent der Top-10 000-Webseiten profitieren schon davon [1] (Abbildung 1).

Abbildung 1: Verbreitung von Nginx im Februar 2013.

Die folgende Liste gibt einen kleinen Einblick in die Funktionen, die Nginx als Frontend erfüllen kann: Loadbalancing und Hot Standby für Application Server, Reverse Proxy, Static Server, Web/Proxy Cache, SSL Offload und SNI, Header Cleanup, Web Application Firewall. Nginx ist vor jeder Application-Server-Infrastruktur einsetzbar, die via HTTP(S) angesprochen wird, bestehende Setups lassen sich einfach erweitern (Abbildung 2).

Abbildung 2: Beispiel-Setup mit Nginx als Frontend.

Neu mit SPDY

Neben dem Neueinlesen der Konfiguration via »HUP« -Signal kann man auch das Nginx-Binary im laufenden Betrieb ohne Verbindungsabbrüche austauschen [2]. Das neue SPDY-Protokoll ist in Nginx ab Version 1.3.15 implementiert und wird wahrscheinlich in die stabile Version 1.4 integriert werden, die im Mai zu erwarten ist. Für ältere Versionen des 1.3-Zweigs gibt es einen Patch [3].

Es gibt Ansätze wie OpenResty [4] oder Tengine [5], die Nginx direkt an Datenbanken und Caches wie Redis oder Memcache anbinden und um Lua-Support erweitern. Downloads der stabilen und Entwicklerversionen finden sich auf http://nginx.org; aktuell sind 1.2.8 (stable) und 1.3.16 (development).

Die Dokumentation im Wiki [6] ist umfassend, alle Optionen des Cores und vieler Drittmodule sind dort inklusive Beispielkonfigurationen, Best-Practice-Guides und Howtos zu finden. Die Mailingliste steht Neueinsteigern und Hardcore-Anwendern gleichermaßen mit Hilfe zur Selbsthilfe zur Verfügung. Selbst Igor Sysoev, der Hauptentwickler von Nginx, antwortet hier ab und zu auf technisch anspruchsvolle Fragen.

Loadbalancing

Loadbalancer sorgen für die Verteilung von Anfragen auf dahinterliegende Server oder Dienste. Nginx bringt dazu mehrere Module mit, die die Last nach verschiedenen Kriterien verteilen. Die Loadbalancer-Funktionen aus dem Upstream-Modul lassen sich gut an die eigenen Gegebenheiten anpassen. So können die Anzahl der Fehlversuche und die Timeouts für jeden Server im Loadbalancer-Verbund einzeln eingestellt werden. Auch eine Gewichtung der einzelnen Server ist möglich. Im Fehlerfall lassen sich einzelne Server aus dem Verbund als inaktiv (down) kennzeichnen. Fehlerseiten können abgefangen und umgeleitet werden. Auch eine Konfiguration von Hot-Standby-Servern, die aktiv werden, wenn andere Server ausfallen, ist möglich. Listing 1 zeigt ein Beispiel für eine solche Konfiguration.

Listing 1

Loadbalancer-Konfiguration

 

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Rechneranalyse mit Microsoft-Sysinternals-Tools

Der Rechner verhält sich eigenartig oder Sie haben eine unbekannte Applikation im Task Manager entdeckt und möchten erfahren, worum es sich dabei genau handelt und ob sie möglicherweise gefährlich ist? In so einem Fall helfen die Sysinternals-Tools von Microsoft. Dieser Beitrag stellt die drei Werkzeuge Autoruns, Process Explorer und TCPView vor. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2018