nginx generalmente envía solicitudes al proceso de gestión de fastcgi para procesarlas, tomando como ejemplo el sitio php; php-fpm es una implementación del protocolo Fastcgi, un hipervisor que gestiona php-cgi. Aquí está el diagrama de flujo:
CGI significa "Interfaz Común de Pasarela", una herramienta para que los servidores HTTP "comuniquen" con programas en tu u otras máquinas, y sus programas deben ejecutarse en un servidor web.
Desventajas del CGI: Cuando entra cada solicitud, el CGI bifurca un nuevo proceso y, por ejemplo, toma PHP como ejemplo; cada solicitud consume una cantidad considerable de memoria, de modo que al lanzarse será completamente GG.
Para resolver este problema, se creó fastCgi.
FastCGI es como un CGI de larga duración, se puede ejecutar en cualquier momento, mientras esté activado, no tarda en bifurcarse cada vez (este es el modo de bifurcación y ejecución más criticado del CGI). También soporta computación distribuida, lo que significa que los programas FastCGI pueden ejecutarse en hosts distintos al servidor web y aceptar solicitudes de otros servidores web.
Prueba
Crea un nuevo archivo php en el directorio D:\dev_tools\nginx-1.20.0\html\php para evitar que nginx reporte un error 404 cuando el archivo no se encuentre, de la siguiente manera:
NGINX fastcgi_pass está configurado de la siguiente manera:
Los datos transmitidos por nginx fastcgi_pass deben analizarse según el protocolo FastCGISi te interesa, puedes ir para averiguarlo, yo uso sokit aquí para habilitar una escucha TCP para una recepción sencilla, intenta usar un navegador para acceder:http://127.0.0.1:22229/itsvse.php, como se muestra en la figura siguiente:
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"Chromium"; v="92", " No 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, como Gecko) Chrome/92.0.4515.131 Safari/537.36.....HTTP_ACCEPTtext/html,application/xhtml+xml,application/xml; q=0.9,imagen/avif,imagen/webp,imagen/apng,*/*; q=0,8,aplicación/intercambio firmado; 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, desinfla, hermano. HTTP_ACCEPT_LANGUAGEzh-CN,zh; q=0,9,en; q=0,8...................... (Fin)
|