NGINX sender vanligvis forespørsler til FastCGI-administrasjonsprosessen for behandling, for eksempel er PHP-FPM en implementering av FastCGI-protokollen, en hypervisor som håndterer PHP-CGI. Her er flytskjemaet:
CGI står for "Common Gateway Interface", et verktøy for HTTP-servere til å "snakke" med programmer på dine eller andre maskiner, og programmene deres må kjøre på en webserver.
Ulemper med CGI: Når hver forespørsel kommer inn, vil CGI forke en ny prosess, og deretter ta PHP som eksempel, hver forespørsel bruker en betydelig mengde minne, slik at når den startes, vil den være helt GG.
For å løse dette problemet ble fastCgi opprettet.
FastCGI er som en langlivet CGI, den kan utføres hele tiden, så lenge den er aktivert, tar det ikke tid å forke hver gang (dette er den mest kritiserte fork-og-kjøre-modusen for CGI). Den støtter også distribuert databehandling, noe som betyr at FastCGI-programmer kan kjøres på andre verter enn webserveren og motta forespørsler fra andre webservere.
Prøve
Opprett en ny php-fil under D:\\dev_tools\nginx-1.20.0\html\php-mappen for å forhindre at nginx rapporterer en 404-feil når filen ikke kan finnes, som følger:
Nginx fastcgi_pass er konfigurert som følger:
Dataene som sendes av nginx fastcgi_pass må analyseres i henhold til FastCGI-protokollenHvis du er interessert, kan du finne ut av det, jeg bruker sokit her for å aktivere TCP-lytting for enkel mottak, prøv å bruke en nettleser for å få tilgang:http://127.0.0.1:22229/itsvse.php, som vist i figuren nedenfor:
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-levende.. HTTP_CACHE_CONTROLmax-age=0.@HTTP_SEC_CH_UA"Chromium"; v="92", " Ikke 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,bilde/avif,bilde/webp,bilde/apng,*/*; q=0.8,applikasjon/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, slapp av, br.. HTTP_ACCEPT_LANGUAGEzh-CN,ZH; q=0,9,en; q=0,8...................... (Slutt)
|