A nginx általában a FASTCGI menedzsment folyamatnak küld kéréseket a feldolgozásra, például a PHP Site-et vezessük fel, a PHP-FPM a Fastcgi protokoll implementációja, egy hipervizátor, amely a PHP-CGI-t kezeli. Íme a folyamatábra:
A CGI a "Common Gateway Interface" (Common Gateway Interface) rövidítése, amely egy olyan eszköz, amely HTTP szerverek számára a programokkal való "kommunikálást" lehetővé teszi a te vagy más gépeidet, és a programjaiknak webszerveren kell futniuk.
A CGI hátrányai: Amikor minden kérés belép, a CGI egy új folyamatot forkál, majd példaként a PHP-t veszi fel, minden kérés jelentős mennyiségű memóriát fogyaszt, így amikor elindítják, teljesen GG lesz.
Ennek a problémának a megoldására létrehozták a fastCgi-t.
A FastCGI olyan, mint egy hosszú életű CGI, mindig végrehajtható, amíg aktiválják, nem tart idő, hogy minden alkalommal elinduljon (ez a legkritikám által kritizált fork-and-execute mód a CGI-ben). Emellett támogatja az elosztott számítástechnikát is, ami azt jelenti, hogy a FastCGI programok más hasztokon is futtathatók a webszerveren kívül, és más webszerverek kéréseit is elfogadják.
Teszt
Hozz létre egy új php fájlt a D:\dev_tools\nginx-1.20.0\html\php könyvtárban, hogy megakadályozza a nginx 404 hibát jelenteni, ha a fájl nem található, az alábbiak szerint:
A nginx fastcgi_pass a következőképpen van konfigurálva:
A nginx fastcgi_pass által továbbított adatokat a FastCGI protokoll szerint kell elemezniHa érdekel, megnézheted, én itt a sokit segítségével engedélyezem a TCP hallgatást egyszerű vételhez, próbálj meg böngészővel hozzáférni:http://127.0.0.1:22229/itsvse.php, ahogy az alábbi ábrán látható:
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-élve.. HTTP_CACHE_CONTROLmax-age=0.@HTTP_SEC_CH_UA"Króm"; v="92", " nem 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, mint a 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,alkalmazás/aláírt csere; 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, leereszteni, br.. HTTP_ACCEPT_LANGUAGEzh-CN,zh; q=0,9,en; q=0,8...................... (Vége)
|