nginx lähettää yleensä pyynnöt FASTCGI:n hallintaprosessille käsiteltäväksi, ottaen esimerkiksi PHP-sivuston, PHP-FPM on Fastcgi-protokollan toteutus, hypervisori, joka hallinnoi PHP-CGI:tä. Tässä on kaavio:
CGI tarkoittaa "Common Gateway Interface" -työkalua, jonka avulla HTTP-palvelimet voivat "kommunikoida" sinun tai muiden koneiden ohjelmien kanssa, ja niiden ohjelmat on suoritettava web-palvelimella.
CGI:n haitat: Kun jokainen pyyntö saapuu, CGI haarautuu uuden prosessin ja otetaan esimerkiksi PHP, jolloin jokainen pyyntö kuluttaa huomattavasti muistia, joten käynnistyksen yhteydessä se on täysin GG.
Tämän ongelman ratkaisemiseksi luotiin fastCgi.
FastCGI on kuin pitkäikäinen CGI, sitä voidaan suorittaa koko ajan, kunhan se aktivoituu, haarautuu ei vie aikaa joka kerta (tämä on eniten kritisoitu haarautuma-ja-suoritustapa CGI:ssä). Se tukee myös hajautettua laskentaa, mikä tarkoittaa, että FastCGI-ohjelmat voidaan suorittaa muilla istoilla kuin web-palvelimella ja hyväksyä pyyntöjä muilta web-palvelimilta.
Testi
Luo uusi PHP-tiedosto D:\dev_tools\nginx-1.20.0\html\php -hakemistoon, jotta nginx ei raportoi 404-virhettä, kun tiedostoa ei löydy, seuraavasti:
Nginx fastcgi_pass on konfiguroitu seuraavasti:
nginx fastcgi_pass:n lähettämä data täytyy jäsentää FastCGI-protokollan mukaisestiJos olet kiinnostunut, voit mennä selvittämään, käytän täällä Sokit-toimintoa TCP-kuuntelun mahdollistamiseen yksinkertaiseen vastaanottoon, kokeile käyttää selainta päästäksesi käsiksi:http://127.0.0.1:22229/itsvse.php, kuten alla olevassa kuvassa näkyy:
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-elossa.. HTTP_CACHE_CONTROLmax-age=0.@HTTP_SEC_CH_UA"Kromi"; v="92", " ei 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, kuten 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, sovellus/allekirjoitettu vaihto; 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, tyhjennetään, br.. HTTP_ACCEPT_LANGUAGEzh-CN,zh; q=0,9,en; q=0,8...................... (Loppu)
|