YouHosting
Site do Hosting



Entendendo o Nginx no cPanel

Entendendo o Nginx no cPanel



Nginx (EngineX) é um servidor web e de correio eletrônico para IMAP, POP3 e SMTP, cuja principal característica é trabalhar em formato de Proxy reverso.

Foi originalmente escrito por Igor Sysoev, um russo, nascido em 1970, para o BSD, e posteriormente adaptado para Linux e outras distros.  Teve seu lançamento oficial em outubro de 2004.

Está atualmente executando vários sites russos e internacionais, como Yandex , Mail.Ru , VK, Rambler, Dropbox , Netflix, Wordpress.com , FastMail.FM, Google, Adobe, Autodesk, Atlassian, Intuit, T-Mobile, GitLab, DuckDuckGo, Microsoft, IBM, Google, Adobe, Salesforce, VMWare, Xerox, LinkedIn, Cisco, Facebook, Target, Citrix Systems, Twitter, Apple, Intel, CloudFlare e muitos outros.

Basicamente o Nginx funciona acelerando a consulta e entrega de conteúdo web, mantendo um cache em memória no Servidor instalado.

Um Servidor web padrão funciona de forma a receber solicitações (GET) para um determinado Domínio.  Ele verifica qual é o diretório no Servidor em que está este Domínio e entrega o primeiro arquivo .php ou  .html que este domínio possui (geralmente index.php ou index.html).  Após isso, o arquivo index é lido pelo browser do cliente e continua a realizar as demais solicitações, como imagens, css, scripts e outros arquivos.  Cada solicitação ao Servidor recebe o mesmo tratamento individual.

Este processo, por cada conexão realizada com o Servidor, é chamada de thread.  E ela é individual.  Ou seja, cada conexão possui uma thread no Servidor que irá realizar o GET do arquivo solicitado diretamente no Diretório, em solicitação ao Sistema Operacional.

Quando ocorrem muitas solicitações, começa a haver uma espécie de fila de threads, ou seja, o Servidor começa a demorar a entregar o conteúdo, uma vez que há threads, ou entregas, ainda a serem realizadas.

Esta situação é ainda piorada quando se trata de alta quantidade de conteúdo, como motores de busca, streaming, bancos e outra aplicações deste tipo, que funcionam em cluster ou distribuídas.  Neste caso, o conteúdo fica espalhado em vários Servidores e armazenamentos, demorando ainda mais para finalizar o thread.

Em casos extremos, o Servidor trava.

O Nginx muda este tratamento com o Servidor, transformando o thread em multi-thread, chamado workers.  No Linux, um multi-thread consome menos tempo e energia que a realização de vários threads ao mesmo tempo.

Esta arquitetura e funcionalidade do Nginx faz a simultaneidade deste processo sem a necessidade de um thread adicional para cada nova conexão GET. Um único processo no Nginx pode receber e tratar simultaneamente milhares de conexões HTTP. Isso é obtido por um mecanismo de loop, denominado loop de evento.

Assim, as solicitações GET do cliente são processadas de forma assíncrona, sem aguardar fila, em um único thread e remetidas, simultaneamente, ao Servidor, sendo entregues e recebidas sem fila ou ordem de aguardar a conclusão do thread anterior.

Ao invés de fazer uma solicitação direta ao servidor de tipo thread, o Nginx executa um processo mestre, chamado worker, e vários processos de trabalho, chamados conexões worker.  Toda essa atividade trabalha continuamente e de forma assíncrona.

Quando há um pedido de processamento de conteúdo, ele é feito pelas conexões worker, ao invés de iniciar apenas um thread.  A conexão worker faz a solicitação ao processo mestre que, por sua vez, retorna o resultado do Servidor (conteúdos, PHP, etc). Isso permite o gerenciamento de inúmeras conexões simultâneas.

Este formato de conexão do Nginx é chamado de Event-based web server.

Nginx também trabalha de forma eficiente como Proxy e junto com o Apache.  Neste caso, para a entrega de conteúdo estático ele trabalha as solicitações realizadas de forma mais rápida e global, agilizando o conteúdo de uma requisição e colocando em cache no Servidor.

Este processo, chamado de Proxy Reverso permite verificar se o conteúdo web já está disponível em cache, antes de realizar nova solicitação ao Sistema Operacional e arquivos, ou seja, acionar o Sistema operacional, sistema de arquivos, localização do arquivo no diretório, acessar o disco, ler, etc.

Na combinação com o Apache, quando uma requisição é realizada, o Nginx verifica se é um arquivo estático, como html, imagem ou CSS, por exemplo.  Neste caso, o Nginx verifica se o conteúdo já está cacheado em memória e entrega o arquivo para o usuário, sem precisar lê-lo novamente.  Se não estiver em cache, o Nginx faz a solicitação ao Sistema Operacional, recebe o arquivo e entrega.

Se for um arquivo dinâmico, ou seja, precisar ser processado e o resultado ser entregue, como PHP ou consulta a banco de dados, o Nginx encaminha a requisição para o Apache, que vai processar ela e entregar para o Nginx remeter o resultado para o visitante.

Da mesma forma que o Apache, o Nginx foi criado também com uma interface modular, ou seja, diferentes funções são oferecidas em módulos correspondentes, as quais os administradores optam por instalar e ativar.  De maneira igual, ele possui várias funções que podem ser selecionadas para uso.

O Nginx com Reverse Proxy do cPanel & WHM passa o conteúdo estático e dinâmico por meio de proxy para o Apache.



Autor: Márcio Amaral
31.05.2021
Categoria: cPanel
Comentários: 0
Visualizações: 112


Compartilhe:


Comentários (0)
Ainda sem Comentários. Seja o primeiro!

Deixe um Comentário
Por favor, Faça logon para postar um Comentário.