Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 9877|Resposta: 0

O protocolo de fastcgi_pass nginx é brevemente apresentado e testado

[Copiar link]
Postado em 2021-11-16 22:16:20 | | | |
O nginx geralmente envia requisições para o processo de gerenciamento do Fastcgi para processar, tomando o site PHP como exemplo; o PHP-FPM é uma implementação do protocolo Fastcgi, um hipervisor que gerencia o PHP-CGI. Aqui está o fluxograma:



CGI significa "Common Gateway Interface", uma ferramenta para servidores HTTP "comunicarem" com programas em sua ou em outras máquinas, e seus programas devem rodar em um servidor web.

Desvantagens do CGI: Quando cada requisição entra, o CGI faz um fork de um novo processo e, então, tomando o PHP como exemplo, cada requisição consome uma quantidade considerável de memória, de modo que, ao ser lançada, será completamente GG.

Para resolver esse problema, foi criado o fastCgi.

O FastCGI é como um CGI duradouro, pode ser executado o tempo todo, desde que seja ativado, não leva tempo para ser feito um fork toda vez (esse é o modo de fork e execução mais criticado do CGI). Também suporta computação distribuída, o que significa que programas FastCGI podem ser executados em hosts diferentes do servidor web e aceitar requisições de outros servidores web.
Teste

Crie um novo arquivo php no diretório D:\dev_tools\nginx-1.20.0\html\php para evitar que o nginx reporte um erro 404 quando o arquivo não for encontrado, da seguinte forma:



O NGINX fastcgi_pass está configurado da seguinte forma:



Os dados transmitidos pelo nginx fastcgi_pass precisam ser analisados de acordo com o protocolo FastCGISe você se interessar, pode ir para descobrir, eu uso o sokit aqui para habilitar um TCP que escuta para recepção simples, tente usar um navegador para acessar:http://127.0.0.1:22229/itsvse.php, como mostrado na figura abaixo:



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-idade=0.@HTTP_SEC_CH_UA"Chromium"; v="92", " Não 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,image/avif,image/webp,image/apng,*/*; q=0,8,aplicação/troca-assinado; 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, desinflar, br.. HTTP_ACCEPT_LANGUAGEzh-CN,zh; q=0,9,en; q=0,8......................
(Fim)




Anterior:Instale o curl baseado no Debian (imagem docker).
Próximo:E45: 'readonly' option is set (add ! to override)
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com