Mit Nginx arbeiten

Die ersten beiden Artikel der Serie haben einen Überblick gegeben und auch über die wesentlichen Module für Nginx gesprochen. Dieses Tutorial hilft Ihnen beim Einstieg in Nginx, indem Sie durch einige grundlegende Techniken zum Verwalten von Konfigurationsdateien und zum Einrichten grundlegender Parameter in den Konfigurationsdateien geleitet werden. 

Konfigurationsdateien aufteilen

Nachdem Nginx installiert ist, wird die / etc / nginx / Verzeichnis wird folgenden Inhalt haben:

  • nginx.conf: Die primäre Konfigurationsdatei.
  • conf.d: Wird für Dinge wie das Laden von Modulen und für Dinge verwendet, die nicht für einen einzelnen virtuellen Host spezifisch sind.
  • Websites zur Verfügung: speichern alles Konfigurationen für virtuelle Hosts, auch wenn sie derzeit nicht aktiviert sind.
  • Sites aktiviert: Alle Sites, die aktiviert sind (Symlinks zu Dateien im Ordner "Sites-Available").
  • mime.types: ordnet Dateinamenerweiterungen MIME-Antworttypen zu.

Diese Sites- * Ordner-Workflow macht die Dinge etwas organisierter. Im Falle mehrerer Websites, d. H. Virtueller Hosts, erhält jeder virtuelle Host seine eigene Konfigurationsdatei. Websites zur Verfügung kann alle Konfigurationsdateien des virtuellen Hosts enthalten, während die aktivierten mit einem Symlink verknüpft werden können Sites aktiviert.

Diese Konfiguration ist der Standard, wenn Sie Nginx installieren. Du kannst sehen wie umfassen hat die Aufnahme von externen Konfigurationsdateien erlaubt. Wenn in einer der enthaltenen Dateien Fehler auftreten, kann Nginx nicht geladen werden.

Mehrere virtuelle Hosts

Mit Nginx können Sie wie jeder andere Webserver mehrere virtuelle Hosts konfigurieren.

# sites-enabled / example.com.conf server listen 80; # sowohl Adresse als auch Port oder nur Adresse oder nur Port. Servername Beispiel.com www.example.com; # Namen eines virtuellen Servers. Kann Platzhalter und reguläre Ausdrücke verwenden. access_log /var/log/nginx/example_com_access.log; error_log /var/log/nginx/example_com_error.log; # legt die Konfiguration in Abhängigkeit von einem Anforderungs-URI fest. Standort / root /var/www/www.example.com; index index.html index.htm; 

Dies erfolgt über den Serverblock. Die Listen-Direktive beschreibt den Port, den der Webserver überwacht, und die Direktive Server_Name listet alle Servernamen auf. Innerhalb des Standorts können Sie definieren, wie der virtuelle Host funktioniert.

Nginx wird geladen

Die Prozess-ID des Master-Nginx-Prozesses wird in eine durch die PID-Direktive definierte Datei geschrieben, z. pid /var/run/nginx.pid;. Dieser Masterprozess unterstützt die folgenden Signale:

TERM, INT Schnelles Herunterfahren
VERLASSEN Anmutiges Herunterfahren
HUP Konfiguration neu laden + ordnungsgemäß heruntergefahrene Mitarbeiter + Neustart
USR1 Öffnen Sie die Protokolldateien erneut
USR2 Upgrade von ausführbaren Dateien im laufenden
WINDE Anmutiges Herunterfahren von Arbeitsprozessen

Um Nginx neu zu laden, können Sie ausführen töte -HUP

Einzelne Arbeitsprozesse können auch über Signale gesteuert werden.

TERM, INT Schnelles Herunterfahren
VERLASSEN Anmutiges Herunterfahren
USR1 Öffnen Sie die Protokolldateien erneut
WINDE abnormale Beendigung zum Debuggen
* erfordert Debug-Punkte

Nginx im Debug-Modus

Dazu müssen Sie Nginx mit dem Debug-Flag kompilieren (--with-debug). Danach ist es möglich, Verbindungen mit bestimmten Adressen von bestimmten Adressen zu debuggen debug_connection Richtlinie.

error_log / var / log / nginx / errors; events debug_connection 192.168.1.18; 

Wenn Sie um Hilfe bei Nginx bitten, geben Sie unbedingt die Ausgabe von weiter nginx -V, vollständige Konfiguration und das Debug-Protokoll.

404 und andere Fehlerseiten

Dies wird mit Hilfe eines erreicht Fehlerseite Richtlinie. Es definiert die Ressource, die für den Fehler angezeigt wird.

# 1 error_page 404 /404.html; error_page 500 502 503 504 / 50x.html; # 2 error_page 404 = 200 /empty.gif; # Ändern Sie den Antwortcode mithilfe der "= response" in einen anderen. error_page 404 = 301 http://example.com/notfound.html; # Weiterleitungen für die Fehlerverarbeitung verwenden # 3 # Fehlerverarbeitung mit einem benannten Speicherort / error_page 404 = @fallback;  location @fallback proxy_pass http: // backend; 

Es gibt auch eine Direktive namens recursive_error_pages Dadurch können Sie mehrere Umleitungen mithilfe der Anweisung error_page ausführen. Zum Beispiel:

error_page 400 404 /404.html; recursive_error_pages on; location ~ * ^ / (404 \ .html | 500 \ .html | 503 \ .html) $ log_not_found off; # Deaktiviert die Protokollierung von Fehlern über nicht gefundene Dateien. error_page 404 = @default;  location @default log_not_found am; root / var / www / default; 

Auto-Indizierungsverzeichnis

Eine Anforderung, bei der die Indexdatei nicht gefunden wird, wird an dieses Modul weitergeleitet (ngx_http_autoindex_module). [Beispiel: lokales Netzwerk freigeben]

location / root / var / www / localdropbox; Autoindex ein; # Aktiviert oder deaktiviert die Ausgabe der Verzeichnisliste. autoindex_exact_size off; # Genaue Dateigröße im Vergleich zur Rundung auf das nächste KB, MB, GB. autoindex_format html; # Format einer Verzeichnisliste. XML, JSON, JSONP möglich. autoindex_localtime ein; # lokales TZ vs. UTC.  

Größe der Datei-Uploads

"Entität zu groß anfordern" (413) ist eine häufige Fehlermeldung, wenn der Benutzer versucht, eine Datei hochzuladen. Diese Dateigröße wird von einer Nginx-Konfigurationsvariablen gesteuert:

Variable client_max_body_size 10M; # M steht für Megabytes.

Hiermit wird die maximale Größe des Clientanforderungshauptteils festgelegt, die im Anforderungskopf "Content-Length" angegeben ist. Um ein Benutzer-Feedback zu diesen Uploads zu erhalten, können Sie auch das nginx-upload-progress-Modul verwenden. Sie müssen eine X-Progress-ID anfügen, die die hochgeladene Datei eindeutig identifiziert.

Kekse

Nginx bietet eine sehr nützliche und raffinierte Funktion zum Bereitstellen von Cookies zur Identifizierung von Endbenutzern. In einer Situation, in der Sie keine externen Analysen einsetzen möchten, können Sie die ngx_http_userid_module Das Modul kann durch die Verwendung von Cookies ausgefüllt werden.

userid on; userid_name uid; userid_domain example.com; userid_path /; userid_expires 365d; userid_p3p 'policyref = "/ w3c / p3p.xml", CP = "CUR ADM UNSERE NOR-STA NID"';

Durch Aktivieren dieses Moduls werden die Variablen $ uid_reset$ uid_got und $ uid_set verfügbar werden. Diese können Ihnen helfen, noch kompliziertere Regeln zum Umschreiben zu schreiben.

Diese Schritte sollten Sie auf jeden Fall dazu bringen, Nginx produktiver zu nutzen. 

Zusätzliche Ressourcen

  1. Wie nginx eine Anfrage verarbeitet
  2. Nginx-Debugging