nginx genellikle FASTCGI yönetim sürecine işlem için istekler gönderir; örneğin PHP sitesi, PHP-FPM, PHP-CGI'yi yöneten bir hipervizör olan Fastcgi protokolünün bir uygulamasıdır. İşte akış şeması:
CGI, "Common Gateway Interface" anlamına gelir; HTTP sunucularının sizin veya diğer makinelerdeki programlarla "konuşması" için bir araç ve programlarının bir web sunucusunda çalışması gerekir.
CGI'nin dezavantajları: Her istek girdiğinde, CGI yeni bir süreç çatallanır ve örnek olarak PHP'yi alırsak, her istek önemli miktarda bellek tüketir, böylece başlatıldığında tamamen GG olur.
Bu sorunu çözmek için fastCGI oluşturuldu.
FastCGI uzun ömürlü bir CGI gibidir, her zaman çalıştırılabilir, etkinleştirildiği sürece her seferinde çatallanması zaman almaz (bu, en çok eleştirilen çatal-çalıştır (bu, CGI'nin en çok eleştirilen fork-and-execute modudur). Ayrıca dağıtık bilişimi destekler; yani FastCGI programları web sunucusu dışındaki ana bilgisayarlarda çalıştırılabilir ve diğer web sunucularından gelen talepleri kabul edebilir.
Test
Dosya bulunamazsa nginx'in 404 hatası bildirmesini önlemek için D:\dev_tools\nginx-1.20.0\html\php dizininde yeni bir php dosyası oluşturun:
nginx fastcgi_pass aşağıdaki şekilde yapılandırılmıştır:
nginx fastcgi_pass tarafından iletilen verilerin FastCGI protokolüne göre ayrıştırılması gerekirİlgileniyorsanız, öğrenmeye gidebilirsiniz, burada sokit kullanıyorum, basit bir alım için TCP dinlemeyi etkinleştiriyorum, erişmek için tarayıcı kullanmayı deneyin:http://127.0.0.1:22229/itsvse.php, aşağıdaki şekilde gösterildiği gibi:
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-hayatta.. HTTP_CACHE_CONTROLmax-age=0.@HTTP_SEC_CH_UA"Krom"; v="92", " A değil; 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, Gecko gibi) 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,uygulama/imzalanan değişim; 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, söndür, br.. HTTP_ACCEPT_LANGUAGEzh-CN,zh; q=0.9,en; q=0.8...................... (Son)
|