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)
|