Anmelden
Anmelden

Beispiele für die Nginx-Location-Direktive

Beispiele für die Nginx-Location-Direktive
Adnene Mabrouk
Technischer Redakteur
Nginx-Webserver
09.02.2026
Reading time: 5 min

Die Nginx-Location-Direktive ist ein leistungsstarkes Werkzeug zur Steuerung verschiedener Arten von Anfragen. Durch das Definieren von Regeln in Location-Blöcken können Sie gezielte Konfigurationen anwenden, Anfragen an unterschiedliche Bereiche Ihrer Anwendung weiterleiten oder bestimmte Requests vollständig blockieren. Eine effektive Nutzung der Location-Direktive ist entscheidend für Performance, Sicherheit und Funktionalität von Webanwendungen.

Grundsyntax der Nginx-Location-Direktive

Die Location-Direktive wird in der Datei nginx.conf definiert:

location [modifier] uri { ... }

  • modifier – optionaler Parameter zur Definition des Match-Typs (z. B. exakt, Präfix, Regex)

  • uri – die zu vergleichende URI

Innerhalb der geschweiften Klammern können verschiedene Einstellungen gesetzt werden (z. B. proxy_pass, root, index).

Exaktes Matching

Ein exaktes Matching greift nur, wenn die URI vollständig übereinstimmt.

location = /exact-match {

    root /var/www/html;

    index index.html;

}

Nur Anfragen an /exact-match werden hier verarbeitet.

Sie können zusätzlich Bedingungen mit if verwenden (beachten Sie: Nginx besitzt kein klassisches if-else):

location = /exact-match {

    root /var/www/html;

    index index.html;

    if ($http_user_agent ~* "Chrome") {

        add_header X-Browser "Chrome";

    }

}

Wird Chrome erkannt, wird ein zusätzlicher Header X-Browser gesetzt.

Präfix-Matching

Dies ist der häufigste Typ und greift bei allen URIs, die mit dem angegebenen Pfad beginnen:

location /prefix {

    root /var/www/html;

    index index.html;

    if ($request_method = POST) {

        return 405;

    }

}

Alle Anfragen wie /prefix/page1 oder /prefix/page2 landen hier. POST-Requests werden mit 405 Method Not Allowed abgelehnt.

Regex-Matching

Für komplexe Szenarien werden reguläre Ausdrücke verwendet.

Häufige Wildcards:

  • . – beliebiges einzelnes Zeichen

  • .* – beliebige Zeichenfolge

  • ^ – Anfang der Zeichenkette

  • $ – Ende der Zeichenkette

location ~* \.php$ {

    fastcgi_pass 127.0.0.1:9000;

    fastcgi_index index.php;

    include fastcgi_params;

    if ($request_uri ~* "/admin") {

        return 403;

    }

    if ($request_uri !~* "/admin") {

        add_header X-Admin "Not Admin";

    }

}

Erklärung:

  • ~* = Regex ohne Beachtung der Groß-/Kleinschreibung

  • \.php$ matcht alle PHP-Dateien

  • /admin → 403 Forbidden

  • sonst wird X-Admin: Not Admin gesetzt

Case-Insensitive Matching

location ~* \.jpg$ {

    root /var/www/images;

    if ($http_referer !~* "^https?://(www\.)?example\.com") {

        return 403;

    }

}

Nur Referer von example.com dürfen Bilder laden.

Priorität der Location-Blöcke

  1. Exakt (=) – höchste Priorität

  2. Regex (~, ~*) – Reihenfolge zählt

  3. Präfix (/) – längstes Präfix gewinnt

Beispiel:

location = /exact { }

location ~* \.jpg$ { }

location / { }

Verschachtelte Location-Blöcke

location /nested {

    location /nested/subnested {

        root /var/www/html;

    }

    root /var/www/html;

}

/nested/subnested wird vom inneren Block verarbeitet.

Praxisbeispiel Webserver

server {

listen 80;

server_name localhost;

location / {

root /var/www/html;

index index.html;

}

location = /about {

root /var/www/html;

index about.html;

}

location /api {

proxy_pass http://localhost:3000;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

}

location ~ \.php$ {

root /var/www/html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fastcgi_params;

}

location ~* \.(jpg|jpeg|png|gif|ico)$ {

root /var/www/images;

}

location /admin {

root /var/www/admin;

index index.html;

location /admin/stats {

proxy_pass http://localhost:8080/stats;

}

}

}

NGINX neu laden

sudo systemctl reload nginx

Testen & Debugging

Syntax prüfen:

sudo nginx -t

Requests testen:

curl -I http://localhost/about

curl -X POST http://localhost/prefix/form

curl -H "User-Agent: Chrome" http://localhost/exact-match

Logs beobachten:

tail -f /var/log/nginx/access.log

tail -f /var/log/nginx/error.log

Zugriffsbeschränkung sensibler Bereiche

location /admin {

    allow 192.168.1.100;

    deny all;

}

Nur diese IP erhält Zugriff.

root vs alias

Directive

Verhalten

Ergebnis

root

hängt URI an

/var/www/static/css/style.css

alias

ersetzt Pfad

/var/www/assets/css/style.css

Alias-Beispiel:

location /files/ {

    alias /data/downloads/;

}

Wichtig: bei alias immer mit / enden.

Fazit

Ein tiefes Verständnis der Location-Direktive ist essenziell für sauberes Request-Routing. Exakte Matches, Präfixe und Regex besitzen unterschiedliche Prioritäten und beeinflussen Performance und Verhalten erheblich. Durch verschachtelte Locations lassen sich hochpräzise Regeln definieren. Wer diese Mechanismen beherrscht, baut stabile, sichere und effiziente Nginx-Konfigurationen.

Nginx-Webserver
09.02.2026
Reading time: 5 min

Ähnlich

Nginx-Webserver

So stellen Sie Dienste mit dem Nginx Proxy Manager bereit

Was ist Nginx Proxy Manager? Nginx Proxy Manager ist eine benutzerfreundliche Oberfläche zur Verwaltung von Reverse-Proxys. Er vereinfacht das Routing von Datenverkehr zu verschiedenen Services und macht diesen Prozess auch für Nutzer ohne tiefgehende Netzwerkkenntnisse zugänglich. Durch eine grafische Benutzeroberfläche (GUI) auf Basis von Nginx können Anwender Proxy-Hosts, SSL-Zertifikate und weitere erweiterte Konfigurationen schnell einrichten und verwalten, ohne sich mit komplexen Kommandozeilenbefehlen beschäftigen zu müssen. Installation von Nginx Proxy Manager Dank Docker ist die Installation von Nginx Proxy Manager unkompliziert. Nachfolgend eine Schritt-für-Schritt-Anleitung: Voraussetzungen Docker und Docker Compose müssen auf Ihrem Cloud-Server installiert sein Grundlegende Kenntnisse der Docker-Befehle Installationsschritte Erstellen Sie ein Verzeichnis für Nginx Proxy Manager und wechseln Sie hinein: mkdir nginx-proxy-manager cd nginx-proxy-manager Erstellen Sie eine Datei docker-compose.yml mit folgendem Inhalt: version: '3' services:   app:     image: 'jc21/nginx-proxy-manager:latest'     restart: always     ports:       - '80:80'       - '81:81'       - '443:443'     environment:       DB_MYSQL_HOST: "db"       DB_MYSQL_PORT: 3306       DB_MYSQL_USER: "npm"       DB_MYSQL_PASSWORD: "npm"       DB_MYSQL_NAME: "npm"     volumes:       - ./data:/data       - ./letsencrypt:/etc/letsencrypt   db:     image: 'mysql:5.7'     restart: always     environment:       MYSQL_ROOT_PASSWORD: 'npm'       MYSQL_DATABASE: 'npm'       MYSQL_USER: 'npm'       MYSQL_PASSWORD: 'npm'     volumes:       - ./data/mysql:/var/lib/mysql Starten Sie die Container: docker-compose up -d Rufen Sie den Nginx Proxy Manager über die IP-Adresse Ihres Servers auf Port 81 auf (z. B. http://localhost:81). Ersteinrichtung des Nginx Proxy Manager Nach der Installation erfolgt die grundlegende Konfiguration: Anmeldung:Öffnen Sie den Browser und rufen Sie http://<Ihre-Server-IP>:81 auf. Die Standard-Zugangsdaten lauten: E-Mail: admin@example.com Passwort: changeme Standard-Zugangsdaten ändern:Ändern Sie umgehend E-Mail-Adresse und Passwort, um den Nginx Proxy Manager abzusichern. Dashboard-Übersicht:Das Dashboard bietet einen Überblick über Proxy-Hosts, SSL-Zertifikate und weitere Konfigurationen. Machen Sie sich mit der Oberfläche vertraut. Konfiguration eines neuen Proxy-Hosts Um einen Service bereitzustellen, müssen Sie einen neuen Proxy-Host konfigurieren: Neuen Proxy-Host hinzufügen Wechseln Sie in den Bereich „Proxy Hosts“ Klicken Sie auf „Add Proxy Host“ Domainnamen eingeben:Tragen Sie die Domainnamen ein, die mit diesem Service verknüpft werden sollen. Mehrere Domains können durch Kommas getrennt werden. Forward Hostname/IP und Port:Geben Sie die interne IP-Adresse und den Port des Services an.Beispiel: Läuft ein Webservice auf Port 8080, geben Sie 192.168.1.100 und 8080 ein. Optionen: Aktivieren Sie „Block Common Exploits“, um eine zusätzliche Sicherheitsebene zu erhalten Aktivieren Sie „Websockets Support“, falls der Service dies benötigt SSL:Sie können entweder ein vorhandenes SSL-Zertifikat verwenden oder ein neues Zertifikat von Let’s Encrypt anfordern. Speichern:Klicken Sie auf „Save“, um die Konfiguration abzuschließen. Verwaltung von SSL-Zertifikaten SSL-Zertifikate sind entscheidend für die Sicherheit Ihrer Services. Nginx Proxy Manager vereinfacht diesen Prozess: Neues SSL-Zertifikat anfordern: Wechseln Sie in den Bereich „SSL Certificates“ Klicken Sie auf „Add SSL Certificate“ Wählen Sie „Let’s Encrypt“ und geben Sie die erforderlichen Daten wie E-Mail-Adresse und Domainname ein Automatische Verlängerung:Nginx Proxy Manager erneuert Let’s-Encrypt-Zertifikate automatisch, sodass Ihre Services ohne manuelles Eingreifen abgesichert bleiben. Eigene Zertifikate:Falls Sie ein eigenes SSL-Zertifikat besitzen, können Sie dieses ebenfalls in diesem Bereich hochladen. Erweiterte Konfigurationsoptionen Nginx Proxy Manager bietet zahlreiche erweiterte Einstellungen zur Feinabstimmung: Access Lists: Beschränken Sie den Zugriff auf Services durch Zugriffskontrolllisten Erlauben oder blockieren Sie Traffic basierend auf IP-Adressen Redirection Hosts: Richten Sie Weiterleitungen von einer Domain zu einer anderen ein Stream Hosts: Verwalten Sie TCP/UDP-Traffic, z. B. für SSH- oder FTP-Dienste Benutzerdefinierte Nginx-Konfiguration: Fügen Sie eigene Nginx-Direktiven hinzu, falls spezielle Anforderungen bestehen Services veröffentlichen: Schritt-für-Schritt-Anleitung Das Bereitstellen eines Services mit Nginx Proxy Manager erfolgt in mehreren Schritten: Service identifizieren:Ermitteln Sie die interne IP-Adresse und den Port des Services. Proxy-Host erstellen:Folgen Sie den Schritten im Abschnitt „Konfiguration eines neuen Proxy-Hosts“. SSL aktivieren:Fordern Sie ein SSL-Zertifikat für die zugehörige Domain an. Konfiguration testen:Rufen Sie den Service über den Domainnamen auf und prüfen Sie die Funktion. Überwachen und anpassen:Kontrollieren Sie regelmäßig die Performance und passen Sie Einstellungen bei Bedarf an. Monitoring und Protokollierung Nginx Proxy Manager bietet integrierte Monitoring- und Logging-Funktionen: Logs: Zugriff auf Protokolle über den Bereich „Logs“ Enthalten detaillierte Informationen zu eingehenden Anfragen, IP-Adressen, Pfaden und Antwortstatus Monitoring: Überwachen Sie im Dashboard den Status Ihrer Proxy-Hosts und SSL-Zertifikate Stellen Sie sicher, dass Zertifikate aktuell sind und alle Services ordnungsgemäß funktionieren Fehlerbehebung bei häufigen Problemen SSL-Zertifikatsfehler: Stellen Sie sicher, dass die Domain korrekt auf die Server-IP verweist Prüfen Sie, ob die Ports 80 und 443 offen und erreichbar sind 502 Bad Gateway: Überprüfen Sie, ob der bereitgestellte Service läuft und intern erreichbar ist Kontrollieren Sie die eingegebene IP-Adresse und den Port Verbindungszeitüberschreitungen: Prüfen Sie die Firewall-Einstellungen Testen Sie die Verbindung zwischen Server und Service Fazit Nginx Proxy Manager vereinfacht das Bereitstellen von Services erheblich und ist sowohl für Einsteiger als auch für erfahrene Anwender ein leistungsstarkes Werkzeug. Mit der benutzerfreundlichen Oberfläche und den umfangreichen Funktionen lassen sich Reverse-Proxys schnell einrichten, Services mit SSL-Zertifikaten absichern und auftretende Probleme effizient beheben. Wenn Sie den in diesem Leitfaden beschriebenen Schritten folgen, können Sie Ihre Services mit Nginx Proxy Manager zuverlässig und effizient verwalten.
23 January 2026 · 6 min to read

Haben Sie Fragen
oder benötigen Sie Unterstützung?

Unsere Fachleute stehen Ihnen jederzeit zur Verfügung –
egal ob Sie Hilfe benötigen oder nicht wissen, wo Sie anfangen sollen.
E-Mail an uns
Hostman's Support