Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Wie Nginx HTTP-Anfragen verarbeitet

Wie Nginx HTTP-Anfragen verarbeitet

王林
王林nach vorne
2020-07-08 17:13:592937Durchsuche

Wie Nginx HTTP-Anfragen verarbeitet

Nginx ist ein Hochleistungs-Webserver, der eine große Anzahl gleichzeitiger Anfragen gleichzeitig verarbeiten kann. Es kombiniert einen Multiprozessmechanismus und einen asynchronen Mechanismus. Der asynchrone Mechanismus verwendet eine asynchrone nicht blockierende Methode.

(Empfohlenes Tutorial: nginx-Tutorial )

Das Folgende ist eine Einführung in den Multithreading-Mechanismus und den asynchronen nicht blockierenden Mechanismus von Nginx.

1. Multiprozessmechanismus

Immer wenn der Server einen Client empfängt, generiert der Server-Masterprozess einen untergeordneten Prozess (Arbeitsprozess). Kommen Sie heraus und stellen Sie eine Verbindung her Der Client wartet auf Interaktion, bis die Verbindung getrennt wird und der Unterprozess endet.

Der Vorteil der Verwendung von Prozessen besteht darin, dass jeder Prozess unabhängig voneinander ist und keine Sperren erfordert, was die Auswirkungen der Verwendung von Sperren auf die Leistung verringert und gleichzeitig die Programmierkomplexität und Entwicklungskosten reduziert.

Zweitens kann durch die Verwendung unabhängiger Prozesse verhindert werden, dass sich Prozesse gegenseitig beeinflussen. Wenn ein Prozess abnormal beendet wird, funktionieren andere Prozesse normal und der Masterprozess startet schnell einen neuen Arbeitsprozess, um sicherzustellen, dass der Dienst nicht unterbrochen wird . wird unterbrechen und das Risiko minimieren.

Nachteile:

Das Generieren eines untergeordneten Prozesses durch das Betriebssystem erfordert das Kopieren des Speichers und andere Vorgänge, was einen gewissen Ressourcen- und Zeitaufwand verursacht. Bei einer großen Anzahl von Anfragen nimmt die Systemleistung ab.

2. Asynchroner, nicht blockierender Mechanismus

Jeder Arbeitsprozess verwendet den asynchronen, nicht blockierenden Modus und kann mehrere Client-Anfragen verarbeiten.

Wenn ein Arbeitsprozess eine Anfrage vom Client erhält, ruft er IO zur Verarbeitung auf. Wenn das Ergebnis nicht sofort abgerufen werden kann, verarbeitet er andere Anfragen (d. h. nicht blockierend). Während dieser Zeit müssen Sie warten. Als Reaktion darauf können Sie andere Dinge erledigen (d. h. asynchron).

Wenn IO zurückkehrt, wird dieser Arbeitsprozess benachrichtigt; der Prozess wird benachrichtigt und unterbricht vorübergehend die aktuell verarbeitete Transaktion, um auf die Client-Anfrage zu reagieren.

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen