Dank des modularen Aufbaus von Nginx ist es sehr praktisch, Nginx für die modulare Entwicklung zu verwenden, bringt aber auch das Problem von komplexem Code und Schwierigkeiten beim Lesen mit sich . Schauen wir uns zunächst an, wie das http-Modul vorbereitet ist. Die Funktion (oder der Handler), die http-Anfragen tatsächlich verarbeitet, ist ngx_http_wait_request_handler.
rev->handler = ngx_http_wait_request_handler;
Am Beispiel dieser Funktion sehen wir uns an, wie das http-Modul diesen Handler bereitstellt, wie unten gezeigt
ngx_http_block () ist ein Typische Modulfunktion in Nginx. Diese Funktion wird aufgerufen, wenn das gesamte Modul geladen ist.
Wann wird dieser Handler aufgerufen, nachdem er aufgelegt wurde?
Dies hängt vom Ereignismodul von nginx ab. Die vom Ereignismodul implementierte Funktion besteht darin, den für die Annahme verwendeten fd in epoll zu registrieren, und dann wird ein neuer connfd generiert Nehmen Sie eine Verbindung aus dem Verbindungspool heraus, initialisieren Sie die Verbindung (dh schreiben Sie den Rückruf unserer Lese- und Schreibereignisse usw. in die Verbindung) und registrieren Sie sie dann zusammen mit epoll Auf diese Weise, solange der connfd ist bereit. Der Handler des entsprechenden Lese- und Schreibereignisses kann entsprechend dem Lese- und Schreibstatus von fd aufgerufen werden.
Schauen wir uns an, wie das Ereignismodul initialisiert und dann auf „accept_fd“ überwacht wird:
Das obige ist der detaillierte Inhalt vonSo entwickeln Sie Nginx nach der Installation. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!