Wichtige Einschränkungen beim Webserver-Design
Architekturdesign von Nginx
Ereignisgesteuerte Architektur
Ereignisse werden von einigen Ereignisquellen generiert, und ein oder mehrere Ereignissammler sammeln und verteilen Ereignisse. Anschließend registrieren viele Ereignisprozessoren die Ereignisse, an denen sie interessiert sind, und „verbrauchen“ diese Ereignisse.
Mehrstufige asynchrone Verarbeitung von Anfragen
Eine mehrstufige asynchrone Verarbeitung von Anfragen kann nur auf Basis einer ereignisgesteuerten Architektur umgesetzt werden.
Teilen Sie einen Anforderungsverarbeitungsprozess entsprechend der Ereignisauslösemethode in mehrere Phasen auf, und jede Phase kann durch Ereignissammler und -verteiler ausgelöst werden.
Plattformunabhängige Code-Implementierung
Versuchen Sie bei der Implementierung in der Sprache C, die Verwendung von Code im Zusammenhang mit der Betriebssystemplattform zu minimieren.
Nginx kapselt Protokolle, verschiedene grundlegende Datenstrukturen, gängige Algorithmen und andere Tool-Software neu.
Der Kerncode wird mithilfe von Code implementiert, der vom Betriebssystem unabhängig ist, und Systemaufrufe, die sich auf das Betriebssystem beziehen, verfügen über unabhängige Implementierungen für jedes Betriebssystem.
Speicherpool-Design
Durch die Konsolidierung mehrerer Vorgänge zum Anfordern von Speicher vom System in einem Vorgang wird der Verbrauch von CPU-Ressourcen erheblich reduziert und die Speicherfragmentierung verringert.
HTTP-Filtermodul unter Verwendung des einheitlichen Pipe-Filtermusters
Einige andere Benutzermodule
Kernstruktur im Nginx-Framework Body ngx_cycle_t
Das Obige stellt die Nginx-Infrastruktur einschließlich verschiedener Aspekte vor. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.