Heim > Artikel > PHP-Framework > Wie man Nginx und Swoole mischt
Nginx basiert auf Epoll
Mit Epoll kann ein Prozess theoretisch eine unbegrenzte Anzahl von Verbindungen ohne Abfragen haben, was das Problem von c10k wirklich löst . (Empfohlenes Lernen: Swoole-Video-Tutorial )
Nginx ist ein asynchrones, nicht blockierendes Serverprogramm, das auf Epoll basiert. Natürlich ist es verständlich, dass Nginx problemlos Millionen gleichzeitiger Verbindungen verarbeiten kann.
Wie Swoole mit hoher Parallelität umgeht
①Einführung in das Reaktormodell
Asynchrone, nicht blockierende IO-Multiplexprogramme verwenden als Name das klassische Reaktormodell deutet darauf hin, dass es sich um einen Reaktor handelt, der das Senden und Empfangen von Daten nicht selbst übernimmt. Es kann nur die Ereignisänderungen eines Socket-Handles (oder eines Pipe-, Eventfd-, Signal-Handles) überwachen.
Hinweis: Was ist ein Griff? Das englische Wort handle ist Handler, was anschaulich mit dem Griff eines Topfes oder eines Löffels verglichen werden kann. Das heißt, die eindeutige Kennung der Ressource und die ID der Ressource. Über diese ID können Ressourcen betrieben werden.
Reactor ist nur ein Ereignisgenerator. Die eigentlichen Vorgänge am Socket-Handle, wie z. B. Verbinden/Akzeptieren, Senden/Empfangen und Schließen, werden im Rückruf abgeschlossen.
Da der Reaktor auf Epoll basiert, kann jeder Reaktor unzählige Verbindungsanfragen verarbeiten. Auf diese Weise kann Swoole problemlos mit hoher Parallelität umgehen.
nginx-Konfiguration:
server { listen 80; server_name www.swoole.com; root /data/wwwroot/www.swoole.com; location / { if (!-e $request_filename){ proxy_pass http://127.0.0.1:9501; } } }
9501 ist die Adresse, auf die der Swoole-Server lauscht. root ist auf das Verzeichnis der statischen Dateien festgelegt. Beim Anfordern einer statischen Datei wird diese direkt von Nginx verarbeitet. Wenn die angeforderte Datei nicht vorhanden ist, wird sie zur Verarbeitung an den Swoole-Server gesendet.
Das obige ist der detaillierte Inhalt vonWie man Nginx und Swoole mischt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!