Wie Nginx HTTP-Anfragen verarbeitet
Die Verarbeitung von HTTP-Anfragen durch Nginx ist die wichtigste Funktion von Nginx und auch der komplexeste Teil. Sie können grob über den Ausführungsprozess sprechen:
Lesen des Anforderungsheaders
Anfragezeile analysieren ;
Anfragekopf analysieren;
Anfragetext lesen
Am meisten beginnen Wichtiger Teil: Das heißt, die mehrstufige Verarbeitung. Nginx unterteilt die Anforderungsverarbeitung in 11 Stufen. Dies bedeutet, dass Nginx die Anforderung in die Struktur ngx_http_request_t einkapselt, nachdem sie die Anforderungszeile und den Anforderungsheader gelesen hat auf diesem ngx_http_request_t, Verarbeiten Sie die Anfrage, z. B. Umschreiben von URI, Berechtigungskontrolle, Pfadsuche, Generieren von Inhalten und Protokollierung usw.
Geben Sie das Ergebnis an den Client zurück 🎜>Die Hauptfunktion der Funktion ngx_http_process_request_line besteht darin, die Anforderungszeile zu analysieren. Da es sich um Netzwerk-E/A-Vorgänge handelt, kann es sein, dass selbst eine kurze Anforderungszeile nicht sofort gelesen wird. Dies gilt in der vorherigen Funktion ngx_http_init_request für die Funktion ngx_http_process_request_line Die Leseereignisverarbeitungsfunktion verfügt nur über einen eindeutigen Parameter vom Typ ngx_event_t *. Zu Beginn der Funktion muss auch festgestellt werden, ob es sich um ein Timeout-Ereignis handelt. Wenn ja, schließen Sie die Anforderung und starten Sie die Verbindung normaler Parsing-Prozess. Rufen Sie zunächst die Funktion ngx_http_read_request_header auf, um die Daten zu lesen.
Die mehrstufige Verarbeitung ist der wichtigste Teil des Nginx-Moduls, da hier auch Module von Drittanbietern registriert sind
Zum Beispiel hat jemand einen Drittanbieter geschrieben, der verwendet wird Nginx und Memcache für Seiten-Caching-Module, Sie können Memcache auch durch Redis-Cluster usw. ersetzen.
Darüber hinaus ähnelt die mehrstufige Verarbeitung von Nginx in gewisser Weise der Middleware von Python- und Golang-Web-Frameworks Der Dekoratormodus für die Kapselung von Ebenen, während Nginx ein Array (verknüpfte Liste) verwendet, um mehrstufige Handler zu kombinieren, und diese dann gemäß der vom Handler gesendeten verknüpften Liste ausführt Der Client entspricht einem bestimmten Pfad auf dem Server. Für Ressourcen muss der Webserver lediglich die URL dem Pfad des lokalen Dateisystems zuordnen, dann die entsprechende Datei lesen und an den Client zurückgeben. Dies war jedoch nur die Anforderung des ursprünglichen Internets. Heutzutage stellt das Internet eine Vielzahl komplexer Anforderungen und erfordert, dass Webserver Probleme wie Sicherheit und Berechtigungskontrolle, Multimedia-Inhalte und dynamische Webseiten bewältigen. Diese komplexen Anforderungen haben dazu geführt, dass der Webserver kein kurzes Programm mehr ist, sondern ein System, das sorgfältig entworfen und modularisiert werden muss.
Die gute Modularität von Nginx spiegelt sich in der mehrstufigen Aufteilung des Anfrageverarbeitungsprozesses wider. Der mehrstufige Verarbeitungsprozess ist wie ein Fließband. Ein Nginx-Prozess kann mehrere Anfragen gleichzeitig in verschiedenen Phasen verarbeiten. Mit Nginx können Entwickler Module in jeder Phase des Verarbeitungsprozesses registrieren. Während der Startphase organisiert Nginx alle in jeder Phase registrierten Modulverarbeitungsfunktionen der Reihe nach in einer Ausführungskette.
Weitere technische Artikel zum Thema Nginx finden Sie in der Spalte
Tutorials zur Nginx-Nutzung, um mehr darüber zu erfahren!
Das obige ist der detaillierte Inhalt vonWie Nginx HTTP-Anfragen verarbeitet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



So bestätigen Sie, ob Nginx gestartet wird: 1. Verwenden Sie die Befehlszeile: SystemCTL Status Nginx (Linux/Unix), Netstat -ano | FindStr 80 (Windows); 2. Überprüfen Sie, ob Port 80 geöffnet ist; 3. Überprüfen Sie die Nginx -Startmeldung im Systemprotokoll. 4. Verwenden Sie Tools von Drittanbietern wie Nagios, Zabbix und Icinga.

Verwenden Sie unter Linux den folgenden Befehl, um zu überprüfen, ob Nginx gestartet wird: SystemCTL -Status Nginx Richter basierend auf der Befehlsausgabe: Wenn "aktiv: aktiv (lief) angezeigt wird, wird Nginx gestartet. Wenn "Active: Inactive (Dead)" angezeigt wird, wird Nginx gestoppt.

Schritte zum Starten von Nginx unter Linux: Überprüfen Sie, ob Nginx installiert ist. Verwenden Sie SystemCTL Start Nginx, um den Nginx -Dienst zu starten. Verwenden Sie SystemCTL aktivieren NGINX, um das automatische Start von NGINX beim Systemstart zu aktivieren. Verwenden Sie den SystemCTL -Status NGINX, um zu überprüfen, ob das Startup erfolgreich ist. Besuchen Sie http: // localhost in einem Webbrowser, um die Standard -Begrüßungsseite anzuzeigen.

Wie konfiguriere ich Nginx in Windows? Installieren Sie NGINX und erstellen Sie eine virtuelle Hostkonfiguration. Ändern Sie die Hauptkonfigurationsdatei und geben Sie die Konfiguration der virtuellen Host ein. Starten oder laden Nginx neu. Testen Sie die Konfiguration und sehen Sie sich die Website an. Aktivieren Sie selektiv SSL und konfigurieren Sie SSL -Zertifikate. Stellen Sie die Firewall selektiv fest, damit Port 80 und 443 Verkehr.

Wie fixiere ich Nginx 403 Verbotener Fehler? Überprüfen Sie die Datei- oder Verzeichnisberechtigungen; 2.Htaccess -Datei prüfen; 3. Überprüfen Sie die Konfigurationsdatei der Nginx; 4. Starten Sie Nginx neu. Weitere mögliche Ursachen sind Firewall -Regeln, Selinux -Einstellungen oder Anwendungsprobleme.

Die Methoden zum Anzeigen des laufenden Status von Nginx sind: Verwenden Sie den Befehl ps, um den Prozessstatus anzuzeigen; Zeigen Sie die nginx -Konfigurationsdatei /etc/nginx/nginx.conf an; Verwenden Sie das Nginx -Statusmodul, um den Statusendpunkt zu aktivieren. Verwenden Sie Überwachungstools wie Prometheus, Zabbix oder Nagios.

Das Starten eines Nginx-Servers erfordert unterschiedliche Schritte gemäß verschiedenen Betriebssystemen: Linux/UNIX-System: Installieren Sie das NGINX-Paket (z. B. mit APT-Get oder Yum). Verwenden Sie SystemCTL, um einen Nginx -Dienst zu starten (z. B. sudo systemctl start nginx). Windows -System: Laden Sie Windows -Binärdateien herunter und installieren Sie sie. Starten Sie Nginx mit der ausführbaren Datei nginx.exe (z. B. nginx.exe -c conf \ nginx.conf). Unabhängig davon, welches Betriebssystem Sie verwenden, können Sie auf die Server -IP zugreifen

Der Server verfügt nicht über die Berechtigung, auf die angeforderte Ressource zuzugreifen, was zu einem NGINX 403 -Fehler führt. Zu den Lösungen gehören: Überprüfung der Dateiberechtigungen. Überprüfen Sie die Konfiguration .htaccess. Überprüfen Sie die Nginx -Konfiguration. Konfigurieren Sie Selinux -Berechtigungen. Überprüfen Sie die Firewall -Regeln. Fehlerbehebung bei anderen Ursachen wie Browserproblemen, Serverausfällen oder anderen möglichen Fehlern.
