Das Konfigurationssystem von Nginx besteht aus einer Hauptkonfigurationsdatei und einigen anderen Hilfskonfigurationsdateien. Bei diesen Konfigurationsdateien handelt es sich ausschließlich um reine Textdateien, die sich alle im Verzeichnis conf unter dem Nginx-Installationsverzeichnis befinden. (Empfohlenes Lernen: nginx-Tutorial)
Zeilen, die in der Konfigurationsdatei mit # beginnen, oder Zeilen, denen eine Reihe von Leerzeichen oder TAB vorangestellt sind und denen dann ein # folgt, gelten als It ist ein Kommentar, das heißt, er ist nur für den Benutzer von Bedeutung, der die Datei bearbeitet und anzeigt. Wenn das Programm diese Kommentarzeilen liest, wird der tatsächliche Inhalt ignoriert.
Da unter bestimmten Umständen andere Dateien als die Hauptkonfigurationsdatei nginx.conf verwendet werden, wird unter allen Umständen nur die Hauptkonfigurationsdatei verwendet. Daher nehmen wir hier die Hauptkonfigurationsdatei als Beispiel, um das Nginx-Konfigurationssystem zu erläutern.
In nginx.conf enthält es mehrere Konfigurationselemente. Jedes Konfigurationselement besteht aus zwei Teilen: Konfigurationsanweisungen und Anweisungsparametern. Befehlsparameter sind die Konfigurationswerte, die den Konfigurationsanweisungen entsprechen.
Befehlsübersicht
Der Konfigurationsbefehl ist eine Zeichenfolge, die in einfache oder doppelte Anführungszeichen eingeschlossen werden kann oder auch nicht. Wenn die Konfigurationsanweisung jedoch Leerzeichen enthält, muss sie in Anführungszeichen gesetzt werden.
Befehlsparameter
Die Parameter des Befehls werden vom Befehl durch ein oder mehrere Leerzeichen oder TAB-Zeichen getrennt. Die Parameter der Anweisung bestehen aus einem oder mehreren TOKEN-Strings. TOKEN-Zeichenfolgen werden durch Leerzeichen oder TAB-Tasten getrennt.
TOKEN-Strings werden in einfache Strings oder zusammengesetzte Konfigurationsblöcke unterteilt. Ein zusammengesetzter Konfigurationsblock ist eine Menge von Inhalten, die in geschweifte Klammern eingeschlossen sind. Ein zusammengesetzter Konfigurationsblock kann mehrere andere Konfigurationsanweisungen enthalten.
Wenn die Parameter einer Konfigurationsanweisung alle aus einfachen Zeichenfolgen bestehen, also keine zusammengesetzten Konfigurationsblöcke enthalten, dann sagen wir, dass die Konfigurationsanweisung ein einfaches Konfigurationselement ist, andernfalls wird sie als komplex bezeichnet Konfigurationselement. Das Folgende ist beispielsweise ein einfaches Konfigurationselement:
error_page 500 502 503 504 /50x.html;
Für eine einfache Konfiguration verwenden Sie ein Semikolon am Ende des Konfigurationselements. Bei komplexen Konfigurationselementen, die mehrere TOKEN-Zeichenfolgen enthalten, wird die einfache TOKEN-Zeichenfolge normalerweise am Anfang und der zusammengesetzte Konfigurationsblock normalerweise am Ende platziert, und am Ende muss kein Semikolon hinzugefügt werden. Zum Beispiel das folgende komplexe Konfigurationselement:
location / { root /home/jizhao/nginx-book/build/html; index index.html index.htm; }
Anweisungskontext
Die Konfigurationsinformationen in nginx.conf werden nach ihrer logischen Bedeutung klassifiziert und unterteilt in mehrere Bereiche oder als Konfigurationsanweisungskontext bezeichnet. Verschiedene Bereiche enthalten ein oder mehrere Konfigurationselemente.
Mehrere Befehlskontexte, die derzeit von Nginx unterstützt werden:
main: Einige Parameter von Nginx, die nichts mit bestimmten Geschäftsfunktionen zu tun haben (z. B. http-Dienst oder E-Mail-Dienst-Proxy). ) zur Laufzeit, wie z. B. die Anzahl der Arbeitsprozesse, die laufende Identität usw.
http: Einige Konfigurationsparameter im Zusammenhang mit der Bereitstellung des HTTP-Dienstes. Zum Beispiel: ob Keepalive verwendet werden soll, ob gzip zur Komprimierung verwendet werden soll usw.
Server: Auf dem http-Dienst werden mehrere virtuelle Hosts unterstützt. Jeder virtuelle Host verfügt über ein entsprechendes Serverkonfigurationselement, das die Konfiguration für den virtuellen Host enthält. Bei der Bereitstellung eines Proxys für Mail-Dienste können Sie auch mehrere Server einrichten, wobei sich jeder Server durch die Abhöradresse unterscheidet.
Speicherort: Im HTTP-Dienst eine Reihe von Konfigurationselementen, die bestimmten spezifischen URLs entsprechen.
Mail: Einige gemeinsame Konfigurationselemente bei der Implementierung von E-Mail-bezogenen SMTP/IMAP/POP3-Proxys (da es möglich ist, mehrere Proxys zu implementieren und an mehreren Abhöradressen zu arbeiten).
Befehlskontext, es kann Einschlüsse geben. Beispiel: Normalerweise müssen der http-Kontext und der Mail-Kontext im Hauptkontext erscheinen. Ein Kontext kann mehrfach Kontexte eines anderen Typs enthalten. Beispiel: Wenn der http-Dienst mehrere virtuelle Hosts unterstützt, werden im http-Kontext mehrere Serverkontexte angezeigt.
Sehen wir uns eine Beispielkonfiguration an:
user nobody; worker_processes 1; error_log logs/error.log info; events { worker_connections 1024; } http { server { listen 80; server_name www.linuxidc.com; access_log logs/linuxidc.access.log main; location / { index index.html; root /var/www/linuxidc.com/htdocs; } } server { listen 80; server_name www.Androidj.com; access_log logs/androidj.access.log main; location / { index index.html; root /var/www/androidj.com/htdocs; } } } mail { auth_http 127.0.0.1:80/auth.php; pop3_capabilities "TOP" "USER"; imap_capabilities "IMAP4rev1" "UIDPLUS"; server { listen 110; protocol pop3; proxy on; } server { listen 25; protocol smtp; proxy on; smtp_auth login plain; xclient off; } }
In dieser Konfiguration existieren alle fünf oben genannten Konfigurationsbefehlskontexte.
Die Konfigurationsanweisungen, die im Hauptkontext vorhanden sind, sind wie folgt:
userworker_processeserror_logeventshttpmail
Die Anweisungen, die im http-Kontext vorhanden sind, sind wie folgt:
server
Die Anweisungen, die in existieren Der E-Mail-Kontext lautet wie folgt:
serverauth_httpimap_capabilities
Die im Serverkontext vorhandenen Konfigurationsanweisungen lauten wie folgt:
listenserver_nameaccess_loglocationprotocolproxysmtp_authxclient
Die im Standortkontext vorhandenen Anweisungen lauten wie folgt:
indexroot
Natürlich sind das nur einige Beispiele. Spezifische Konfigurationsanweisungen und den Kontext, in dem diese Konfigurationsanweisungen angezeigt werden können, finden Sie in der Nginx-Nutzungsdokumentation.
Das obige ist der detaillierte Inhalt vonWoraus besteht das Nginx-Konfigurationssystem?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!