Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 9877|Antwort: 0

Das nginx-fastcgi_pass-Protokoll wird kurz eingeführt und getestet

[Link kopieren]
Veröffentlicht am 16.11.2021, 22:16:20 | | | |
NGINX sendet in der Regel Anfragen an den FastCGI-Managementprozess zur Bearbeitung; nehmen wir die PHP-Website als Beispiel: PHP-FPM ist eine Implementierung des FastCGI-Protokolls, eines Hypervisors, der PHP-CGI verwaltet. Hier ist das Flussdiagramm:



CGI steht für "Common Gateway Interface", ein Werkzeug, mit dem HTTP-Server mit Programmen auf deinen oder anderen Rechnern "kommunizieren", deren Programme auf einem Webserver laufen müssen.

Nachteile von CGI: Wenn jede Anfrage eingeht, verteilt CGI einen neuen Prozess, und nehmen wir dann PHP als Beispiel: Jede Anfrage verbraucht eine beträchtliche Menge Speicher, sodass sie beim Start vollständig GG ist.

Um dieses Problem zu lösen, wurde fastCgi entwickelt.

FastCGI ist wie ein langlebiges CGI, es kann ständig ausgeführt werden, solange es aktiviert ist, dauert es nicht jedes Mal Zeit zum Forken (dies ist der am meisten kritisierte Fork-and-Execute-Modus der CGI). Es unterstützt außerdem verteiltes Rechnen, was bedeutet, dass FastCGI-Programme auf anderen Hosts als dem Webserver ausgeführt werden können und Anfragen von anderen Webservern entgegennehmen können.
Test

Erstellen Sie eine neue php-Datei unter dem D:\dev_tools\nginx-1.20.0\html\php-Verzeichnis, um zu verhindern, dass nginx einen 404-Fehler meldet, wenn die Datei nicht gefunden werden kann, wie folgt:



Nginx fastcgi_pass ist wie folgt konfiguriert:



Die von nginx fastcgi_pass übertragenen Daten müssen gemäß dem FastCGI-Protokoll analysiert werdenWenn Sie interessiert sind, können Sie herausfinden, dass ich hier sokit benutze, um ein TCP-Abhören für einfachen Empfang zu aktivieren, versuchen Sie, einen Browser zu nutzen, um auf folgende Optionen zuzugreifen:http://127.0.0.1:22229/itsvse.php, wie in der untenstehenden Abbildung dargestellt:



22:06:07 DAT ---> [TCP] 127.0.0.1:1032 <1136> ..................... B.... QUERY_STRING.. REQUEST_METHODGET.. CONTENT_TYPE.. CONTENT_LENGTH.. SCRIPT_NAME/itsvse.php.. REQUEST_URI/itsvse.php.. DOCUMENT_URI/itsvse.php." DOCUMENT_ROOTD:/dev_tools/nginx-1.20.0/html/php.. SERVER_PROTOCOLHTTP/1.1..REQUEST_SCHEMEhttp.. GATEWAY_INTERFACECGI/1.1..SERVER_SOFTWAREnginx/1.20.0..REMOTE_ADDR127.0.0.1.. REMOTE_PORT1025.. SERVER_ADDR127.0.0.1.. SERVER_PORT22229.. SERVER_NAME.. REDIRECT_STATUS200.. HTTP_HOST127.0.0.1:22229..HTTP_CONNECTIONkeep-lebendig.. HTTP_CACHE_CONTROLmax-age=0.@HTTP_SEC_CH_UA"Chromium"; v="92", " Nicht A; Brand"; v="99", "Google Chrome"; v="92".. HTTP_SEC_CH_UA_MOBILE?0..HTTP_UPGRADE_INSECURE_REQUESTS1.sHTTP_USER_AGENTMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, wie Gecko) Chrome/92.0.4515.131 Safari/537.36.....HTTP_ACCEPTtext/html,application/xhtml+xml,application/xml; q=0.9,Bild/AVIF,Bild/Webp,Bild/APPNG,*/*; q=0.8,application/signed-exchange; v=b3; q=0.9..HTTP_SEC_FETCH_SITEnone.. HTTP_SEC_FETCH_MODEnavigate.. HTTP_SEC_FETCH_USER? 1..HTTP_SEC_FETCH_DESTdocument.. HTTP_ACCEPT_ENCODINGgzip, entleer, br.. HTTP_ACCEPT_LANGUAGEzh-CN,zh; q=0,9,en; q=0,8......................
(Ende)




Vorhergehend:Installiere Curl basierend auf Debian (docker-Image).
Nächster:E45: 'readonly' option is set (add ! to override)
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com