O que é nginx
nginx é um servidor web que também atua como proxy reverso, servidor de arquivos estáticos e ponto de entrada para aplicações. Ele recebe a conexão do visitante e decide se entrega o arquivo, encaminha a requisição para outro processo ou recusa o acesso.
O uso mais comum num projeto próprio é ficar na frente da aplicação. O nginx segura a conexão, aplica limites, serve imagens e encaminha o resto para o PHP-FPM, para o Node ou para um serviço interno.
O processo mestre e os workers
O nginx trabalha com um processo mestre e vários workers. O mestre lê e valida a configuração, mantém os workers e distribui o trabalho. Os workers atendem as requisições.
A quantidade de workers segue o arquivo de configuração e pode acompanhar o número de núcleos da máquina. Esse desenho explica por que a recarga é segura: os workers antigos terminam o que estão atendendo e saem depois.
O arquivo de configuração e a recarga
A configuração fica em nginx.conf, com blocos http, server e location. Cada server responde por um domínio e uma porta. Cada location decide o que fazer com um caminho da URL.
Depois de editar o arquivo, nginx -t valida a sintaxe e nginx -s reload aplica a mudança. Se a validação falhar, o servidor continua com a configuração anterior. O erro aparece na saída do comando.
nginx na frente do PHP
Com fastcgi_pass, o nginx encaminha o script ao PHP-FPM e devolve a resposta ao visitante. O caminho exige que o processo PHP esteja ativo e que o arquivo solicitado exista no diretório configurado.
Essa separação é o que permite atualizar o interpretador sem mexer no nginx. Também é o motivo de um domínio continuar respondendo enquanto outro já aponta para o diretório novo.
Como conferir o que está publicado
nginx -T mostra a configuração completa, incluindo os arquivos incluídos pelos blocos. nginx -v informa a versão instalada. Os registros de acesso e de erro ficam em access.log e error.log, com caminho definido na própria configuração.
O proxy reverso e o balanceamento de carga ampliam esse mesmo desenho para vários serviços ou várias máquinas. Quando o tráfego passa antes por uma CDN ou pelo Cloudflare, a conferência precisa considerar o endereço de origem que chega ao servidor.
Para revisar a configuração do serviço e o encaminhamento até a aplicação, o Desenvolvimento Colaborativo da Dev Side Studio permite conferir o arquivo e a recarga durante a sessão.
Dúvidas frequentes
Perguntas frequentes sobre nginx
- Recarregar a configuração derruba as conexões abertas?
- A recarga não interrompe o serviço. O processo mestre valida o arquivo, inicia workers novos e solicita o encerramento dos antigos, que terminam as requisições em andamento antes de sair.
- O nginx substitui o Apache?
- Ele pode atender o site sozinho ou ficar na frente de outro servidor como [proxy reverso](/glossario/proxy-reverso/). Nas duas situações a configuração é diferente, e a escolha depende do que já está publicado.
- Como o nginx entrega a requisição ao PHP?
- Pelo protocolo FastCGI, com a diretiva `fastcgi_pass` apontando para o processo PHP-FPM. O nginx recebe a conexão, encaminha o script e devolve a resposta ao visitante.
- O que acontece se a configuração tiver erro?
- A recarga é recusada e o processo continua com a configuração anterior. O comando `nginx -t` mostra o erro antes de aplicar a mudança.
Para continuar
Recursos relacionados
Documentação
nginx: documentação oficial
Reúne a referência de diretivas, módulos e protocolos aceitos pelo servidor.
Abrir recursoDocumentação
nginx: guia para iniciantes
Explica processos, arquivo de configuração, conteúdo estático, proxy e FastCGI.
Abrir recursoAplicação na formação
Formação DevOps
Na Formação DevOps, o nginx é o serviço que recebe a conexão, encaminha para a aplicação e precisa de configuração e recarga conferidas.
Conhecer a formação
Fontes consultadas
Referências deste verbete
Este verbete ajudou você?
Obrigado pela resposta. Ela fica salva apenas neste navegador.