nginx generalmente invia richieste al processo di gestione Fastcgi per essere elaborate, prendendo come esempio PHP Site, PHP-FPM è un'implementazione del protocollo Fastcgi, un hypervisor che gestisce php-cgi. Ecco il diagramma di flusso:
CGI sta per "Common Gateway Interface", uno strumento per i server HTTP di "comunicare" con i programmi su di te o su altri computer, e i loro programmi devono essere eseguiti su un server web.
Svantaggi del CGI: Quando ogni richiesta entra, il CGI forka un nuovo processo e poi prende PHP come esempio, ogni richiesta consuma una notevole quantità di memoria, così che al momento del lancio sarà completamente GG.
Per risolvere questo problema, è stato creato fastCgi.
FastCGI è come una CGI longeva, può essere eseguita sempre, finché è attivata, non ci vuole tempo per essere fatta a fork ogni volta (questa è la modalità di generazione e esecuzione più criticata). Supporta anche il calcolo distribuito, il che significa che i programmi FastCGI possono essere eseguiti su host diversi dal server web e accettare richieste da altri server web.
Test
Crea un nuovo file php nella directory D:\dev_tools\nginx-1.20.0\html\php per evitare che nginx riporti un errore 404 quando il file non può essere trovato, come segue:
NGINX fastcgi_pass è configurato come segue:
I dati trasmessi da nginx fastcgi_pass devono essere analizzati secondo il protocollo FastCGISe sei interessato, puoi andare a scoprirlo, io uso sokit qui per abilitare un TCP di ascolto per una ricezione semplice, prova a usare un browser per accedere:http://127.0.0.1:22229/itsvse.php, come mostrato nella figura sottostante:
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-vivo.. HTTP_CACHE_CONTROLmax-age=0.@HTTP_SEC_CH_UA"Cromo"; v="92", " Non 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, come Gecko) Chrome/92.0.4515.131 Safari/537.36.....HTTP_ACCEPTtext/html,application/xhtml+xml,application/xml; q=0.9,immagine/avif,immagine/webp,immagine/apng,*/*; q=0.8,applicazione/scambio firmato; 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, sgonfia, fratello. HTTP_ACCEPT_LANGUAGEzh-CN,zh; q=0,9,en; q=0,8...................... (Fine)
|