GeekZilla
InstagramServiçosWeb Hosting

NGiNX, a solução open source para sites com alto volume de tráfego

Por vezes somos procurados aqui no GeekZilla para criação de sites, uma parte importante e inicial deste processo é justamente onde hospedar o site/sistema e as tecnologias que serão utilizadas, um dos destaques em termos das tecnologias que utilizamos nesta área é o Nginx.

Para quem não conhecia basicamente o Nginx é por assim dizer o sistema que roda o seu site (seu “concorrente” é o Apache, este talvez esteja mais no subconsciente popular, pois impulsionou os primórdios da Internet), seja um WordPress, Joomla ou uma loja com Opencart, mas vamos por partes para isto fica um pouco mais claro. Quando se hospeda um site o servidor onde ele roda funciona com os seguintes componentes principais:

  • Hardware (Virtualizado geralmente)
  • Sistema Operacional
  • Servidor que roda os sistemas hospedados (Ou seja processa os arquivos html, php e similares)

*  Sim, é uma visão simplificada, visto que a ideia é explicar o que é o Nginx, mesmo para quem não é da area de redes/sistemas e afins.

O Nginx é esta última camada, o servidor que roda os arquivos necessários para a apresentação de um website.

Agora por que escolhemos o NGiNX? Ou porque você deveria também escolher esta solução?

Tudo se resume a Arquitetura orientada por eventos versus Arquitetura orientada por processos, vamos explicar melhor:

O Apache emprega uma abordagem orientada por processos e cria uma nova thread para tratar cada pedido de conexão. O NGiNX, por outro lado, é acionado por eventos, que pode lidar com várias solicitações dentro de uma determinada thread.

O que é uma thread? Uma thread é a menor sequência de instruções programadas que pode ser gerenciada independentemente por um programador. Na maioria dos casos, uma thread é um componente de um processo. Podem existir várias threads dentro de um processo, executando simultaneamente e compartilhando recursos como a memória, enquanto diferentes processos não compartilham estes recursos.

Assim, o NGiNX é consideravelmente mais leve e não abusa dos recursos do servidor. Esta é precisamente a razão por trás da inclinação dos desenvolvedores web para o NGiNX quando se trata de servir um website com um grande volume de tráfego.

Melhor otimização de recursos

Todos os detalhes e funções mencionadas facilitam ainda mais a alocação de recursos, um servidor com Nginx acaba sendo relativamente mais fácil de se otimizar, em termos de performance, acople ele ao excelente interpretador Php-FPM e você tem todo o necessário para lidar com um grande volume de tráfego, para citar exemplos temos servidores vps (Virtual Private Server) com apenas duas cpus e 2GB de ram lidando com algo em torno de 5 a 8 mil acessos diários.

E falando em PHP-FPM

Nginx é a combinação ideal com PHP-FPM. Por quê? Porque o NGINX é um servidor web estável, reconhecido por seu desempenho impressionante e baixo consumo de recursos, como já mencionamos. Ele apresenta uma estrutura assíncrona que é altamente escalável, de acordo com os eventos gerados. Além disso, o desempenho do consumo de memória é significativamente melhor quando se usa o Nginx e o PHP-FPM juntos.

O PHP funciona como um serviço isolado quando se usa PHP-FPM. Empregar esta versão PHP como intérprete da linguagem significa que as solicitações serão processadas através de um socket TCP/IP, e o servidor Nginx lida apenas com solicitações HTTP, enquanto o PHP-FPM interpreta o código PHP. Tirar proveito de dois serviços separados é vital para se tornar mais eficiente.

Tutoriais e dicas

Em breve vamos estar compartilhando uma série de tutoriais e dicas, tanto sobre Nginx quanto Php-fpm, a ideia deste artigo foi apresentar o Nginx, por isso o balanço entre parte técnica e uma linguagem acessível.