Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 9877|Svar: 0

nginx fastcgi_pass-protokollet introduceras och testas kort

[Kopiera länk]
Publicerad den 2021-11-16 22:16:20 | | | |
NGINX skickar vanligtvis förfrågningar till FastCGI-hanteringsprocessen för bearbetning, ta PHP-sidan som exempel, php-fpm är en implementation av Fastcgi-protokollet, en hypervisor som hanterar php-cgi. Här är flödesschemat:



CGI står för "Common Gateway Interface", ett verktyg för HTTP-servrar att "prata" med program på dina eller andra maskiner, och deras program måste köras på en webbserver.

Nackdelar med CGI: När varje förfrågan kommer in kommer CGI att forka en ny process, och ta sedan PHP som exempel, varje förfrågan förbrukar en betydande mängd minne, så att när den startas är den helt GG.

För att lösa detta problem skapades fastCgi.

FastCGI är som en långlivad CGI, den kan köras hela tiden, så länge den är aktiverad tar det inte tid att forka varje gång (detta är det mest kritiserade fork-och-exekver-läget för CGI). Den stöder också distribuerad databehandling, vilket innebär att FastCGI-program kan köras på andra värdar än webbservern och ta emot förfrågningar från andra webbservrar.
Test

Skapa en ny php-fil under D:\\dev_tools\nginx-1.20.0\html\php-mappen för att förhindra att nginx rapporterar ett 404-fel när filen inte kan hittas, enligt följande:



nginx fastcgi_pass är konfigurerad enligt följande:



Data som skickas av nginx fastcgi_pass måste tolkas enligt FastCGI-protokolletOm du är intresserad kan du gå och ta reda på det, jag använder sokit här för att aktivera TCP-lyssning för enkel mottagning, försök använda en webbläsare för att komma åt:http://127.0.0.1:22229/itsvse.php, som visas i figuren nedan:



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-levande.. HTTP_CACHE_CONTROLmax-age=0.@HTTP_SEC_CH_UA"Chromium"; v="92", " Inte 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, som 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/apng,*/*; q=0.8,applikation/signerat-utbyte; 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, släpp ut luften, br.. HTTP_ACCEPT_LANGUAGEzh-CN,zh; q=0.9,en; q=0,8......................
(Slut)




Föregående:Installera curl baserat på Debian (docker-image).
Nästa:E45: 'readonly' option is set (add ! to override)
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com