Seminarinhalt
Generell zeichnet sich Nginx durch einen geringen Bedarf an Hauptspeicher und CPU bei vielen gleichzeitigen Verbindungen aus. Erreicht wird es dadurch, dass im Gegensatz zu Apache der Nginx die Anfragen Event basierend asynchron verarbeitet. Der Vorteil an der asynchronen Verarbeitung ist, dass nur wenige gleichzeitige Prozesse für viele gleichzeitige Anfragen benötigt werden. Dadurch kann Nginx mehrere tausend Anfragen mit nur wenig RAM gleichzeitig bearbeiten, während Apache für das gleiche mehrere hundert Megabyte RAM benötigen würde. Weitere gängige Einsatzgebiete von Nginx sind das schnelle Reverse-Proxing und das Verteilen von Web Last als Load Balancer.
Jede*r Teilnehmer*in erhält mehrere Linux VMs (SUSE, Red Hat und Debian) und hat die Möglichkeit das erlernte Wissen auf allen Plattformen zu testen.
Programm
- Funktionsweise des HTTP-Protokolls (HTTP-Methoden,...)
- HTTP Request- und Response Header im Detail
- Diagnose der HTTP Header mit telnet, netcat, wireshark, openssl und Browser Development ToolsAnfrage
- HTTP Status & Error Codes
Bereitstellen des Nginx Web Servers
- Nginx Installation auf SLES15, CentOS/Rocky8 und Debian11
- Konfigurationsdateien und Ordnerstrukturen
- Sektionen in der Konfigurationsdateien
- main, http, server, upstream, location, if, limit_except
- Vererbungsregeln bei den Sektionen
- Dienste Verwaltung
Nginx Konfiguration from Scratch
- Location Context im Detail
- Location block selection algorithm
- Location Context und Rewrite Engine
- Logging Konfiguration
Dynamischer Content mit PHP
- PHP Installation auf CentOS/Rocky, SUSE und Debian
- PHP-FPM Integration mit Nginx
Nginx und Virtual Hosts (VHOSTS)
- Port basierend
- IP-basierend
- Namens-basierend
Tuning Einstellungen
- Expires und Cache-Control Header Felder
- Limitiationseinstellungen für Inbound Traffic
- request rate, simultaneous connections, transfer rate,...
- Einstellungen für Outbound Traffic
- Load Distribution, Persistent Connections, transfer rate,...
- Webcontent mit gzip komprimieren
- Persistent Connection
- Keep Alive Einstellungen
- Worker Prozesse und Connections
Nginx Security
- SSL_* Direktiven
- Absichern des Servers mit SSL Server Zertifikaten
- Automatische Weiterleitung von http auf https
- Zugriffsteuerung mit Access Control Parametern (deny, allow, satisfy, auth_*)
- Nginx Benutzer Authentifizierung
Nginx als Reverse Proxy
- Reverse Proxy Einstellungen
- Reverse Proxy mit Content Cache
- Nginx als SSL Proxy
Nginx als Load Balancer
- Load Balancing Algorithm
- Host Header und IP Forwarding
- Nginx Reverse Proxy als Load Balancer für Apache Webserver
Zielgruppen
Vorkenntnisse
keine Web Programmierkenntnisse erforderlich