nginx saadab tavaliselt päringuid FASTCGI haldusprotsessile töötlemiseks, näiteks PHP-fpm on Fastcgi protokolli rakendus, hüperviisor, mis haldab PHP-CGI-d. Siin on vooskeem:
CGI tähendab "Common Gateway Interface" ehk "Common Gateway Interface" tööriist, mis võimaldab HTTP-serveritel "suhelda" sinu või teiste masinate programmidega ning nende programmid peavad töötama veebiserveris.
CGI puudused: Kui iga päring siseneb, harutab CGI uue protsessi ja võtame näiteks PHP – iga päring kulutab märkimisväärselt palju mälu, nii et käivitamisel on see täielikult GG.
Selle probleemi lahendamiseks loodi fastCgi.
FastCGI on nagu pikaealine CGI, seda saab käivitada kogu aeg, kui see on aktiveeritud, ei võta iga kord hargnemine aega (see on CGI kõige enam kritiseeritud fork-and-execute režiim). See toetab ka hajutatud arvutust, mis tähendab, et FastCGI programme saab käivitada ka teistel hostidel peale veebiserveri ning vastu võtta päringuid teistelt veebiserveritelt.
Katse
Loo uus PHP-fail kataloogi D:\dev_tools\nginx-1.20.0\html\php alla, et vältida nginx-il 404 vea teatamist, kui faili ei leita, järgmiselt:
NGINX fastcgi_pass on konfigureeritud järgmiselt:
nginx fastcgi_pass edastatud andmed tuleb parsida vastavalt FastCGI protokollileKui oled huvitatud, võid minna ja uurida, mina kasutan siin Sokit'i, et lubada TCP kuulamine lihtsaks vastuvõtuks, proovi kasutada brauserit, et pääseda:http://127.0.0.1:22229/itsvse.php, nagu alloleval joonisel näidatud:
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-elus.. HTTP_CACHE_CONTROLmax-age=0.@HTTP_SEC_CH_UA"Kroom"; v="92", " mitte 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, nagu Gecko) Chrome/92.0.4515.131 Safari/537.36.....HTTP_ACCEPTtext/html,application/xhtml+xml,application/xml; q=0.9,image/avif,image/webp,image/apng,*/*; q=0.8, rakendus/allkirjastatud vahetus; 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, tühjenda, br.. HTTP_ACCEPT_LANGUAGEzh-CN,zh; q=0,9,en; q=0,8...................... (Lõpp)
|