Neste capítulo você vai instalar o Nginx em distribuições Linux comuns, controlar o serviço com systemd e executar os primeiros comandos essenciais para operar com segurança: checar versão, ver status, validar configuração, recarregar sem downtime e confirmar rapidamente se o servidor está respondendo.
O que você precisa entender antes de começar
Pacote, serviço e arquivos principais
- Pacote: o software Nginx instalado via gerenciador (APT ou DNF/YUM).
- Serviço: o processo gerenciado pelo
systemd(normalmente chamadonginx). - Configuração: arquivo principal geralmente em
/etc/nginx/nginx.confe diretórios auxiliares (varia por distro). - Conteúdo padrão: uma página de boas-vindas servida a partir de um diretório web (varia por distro).
Restart vs Reload (diferença prática)
- restart: para e inicia o serviço. Interrompe conexões ativas e pode causar indisponibilidade momentânea. Útil quando você mudou algo que exige reinicialização completa ou quando o processo está em estado ruim.
- reload: recarrega a configuração sem derrubar o processo principal. O Nginx reabre arquivos e aplica mudanças de configuração de forma graciosa, mantendo conexões existentes (na prática, reduz ou elimina downtime). É o caminho padrão após editar configs.
Instalação no Debian/Ubuntu (APT)
Passo a passo
sudo apt update
sudo apt install -y nginxIniciar e habilitar no boot
sudo systemctl start nginx
sudo systemctl enable nginxVerificar se está ativo
systemctl status nginx --no-pagerProcure por Active: active (running).
Instalação no RHEL/CentOS/Alma/Rocky (DNF/YUM)
Passo a passo
Em sistemas mais novos, use dnf. Em alguns ambientes legados, yum ainda aparece como compatibilidade.
sudo dnf install -y nginxSe sua distro usar yum:
sudo yum install -y nginxIniciar e habilitar no boot
sudo systemctl start nginx
sudo systemctl enable nginxObservação importante: firewall/SELinux
Nessas famílias, é comum o serviço subir, mas o acesso externo falhar por firewall. Se você estiver testando a partir de outra máquina e não abrir, valide se as portas HTTP/HTTPS estão liberadas. Exemplos com firewalld:
- Ouça o áudio com a tela desligada
- Ganhe Certificado após a conclusão
- + de 5000 cursos para você explorar!
Baixar o aplicativo
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reloadSe estiver em ambiente com SELinux enforcing e você começar a usar proxy/reverse proxy mais adiante, pode ser necessário ajustar booleans e contextos. Para este capítulo, foque em confirmar que o serviço responde localmente primeiro.
Primeiros comandos essenciais do Nginx
Verificar versão e build
O Nginx imprime a versão no stderr, então é normal ver a saída mesmo sem sudo:
nginx -vPara ver mais detalhes (módulos compilados e opções):
nginx -VChecar status do serviço (systemd)
systemctl status nginx --no-pagerPara ver logs recentes do serviço via journal:
sudo journalctl -u nginx -n 100 --no-pagerIniciar, parar, reiniciar e recarregar
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
sudo systemctl reload nginxUse reload após mudanças de configuração sempre que possível.
Teste de sintaxe antes de aplicar mudanças
Antes de recarregar, valide a configuração. Isso evita derrubar o serviço por erro de digitação.
sudo nginx -tSaída esperada quando está tudo certo:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulRecarregamento sem downtime (fluxo recomendado)
Fluxo seguro sempre que você editar arquivos em /etc/nginx:
Edite a configuração (ex.: com
sudo nanoousudo vim).Teste a sintaxe:
sudo nginx -tRecarregue sem derrubar conexões:
sudo systemctl reload nginx
Se o reload falhar, o systemctl normalmente indicará erro. Nesse caso, volte ao nginx -t e aos logs (journalctl) para localizar o arquivo/linha.
Como validar rapidamente se o servidor está respondendo
Teste local com curl (mais rápido)
Do próprio servidor:
curl -I http://127.0.0.1/Você deve ver um status HTTP, como:
HTTP/1.1 200 OKSe aparecer 403, pode ser permissão/raiz do site. Se aparecer 404, pode ser que o host/rota padrão não esteja apontando para um arquivo existente. Se aparecer 502 ou 504, normalmente é cenário de proxy para upstream (mais comum em capítulos de reverse proxy).
Ver o corpo da página
curl http://127.0.0.1/Em instalações padrão, é comum aparecer uma página de boas-vindas do Nginx.
Teste por navegador
Acesse http://IP_DO_SERVIDOR/. Se não abrir:
- Teste primeiro localmente com
curlpara separar problema de Nginx vs rede/firewall. - Confirme se a porta 80 está ouvindo (ver abaixo).
Confirmar porta ouvindo (80/443)
Use uma das opções:
sudo ss -lntp | grep -E ':80|:443'Ou:
sudo lsof -iTCP -sTCP:LISTEN -nP | grep -E ':(80|443)'Entendendo rapidamente códigos HTTP comuns no teste
| Código | O que significa na prática | Próxima ação típica |
|---|---|---|
| 200 | OK, servindo conteúdo | Seguir para configurar sites/hosts |
| 301/302 | Redirecionamento | Verificar regras de redirect e URL final |
| 403 | Proibido | Checar permissões e diretiva root/index |
| 404 | Não encontrado | Checar caminho do arquivo e bloco de servidor |
| 500 | Erro interno | Checar logs do Nginx e configuração |
| 502/504 | Problema com upstream | Checar serviço backend e configuração de proxy |
Checklist mínimo de pós-instalação (para evitar erros comuns)
- Serviço ativo e habilitado:
systemctl status nginxesystemctl is-enabled nginx. - Versão confirmada:
nginx -v(útil para compatibilidade de diretivas). - Configuração válida: sempre rode
sudo nginx -tantes dereload. - Reload como padrão: prefira
sudo systemctl reload nginxem vez derestartpara evitar downtime. - Portas ouvindo: valide com
ss -lntpse 80/443 estão em LISTEN. - Teste local com curl:
curl -I http://127.0.0.1/para separar problema de rede/firewall. - Firewall liberado (se acesso externo): em RHEL-like, libere
http/httpsnofirewalldquando aplicável. - Logs acessíveis: saiba consultar
journalctl -u nginxpara erros de start/reload. - Evite editar e reiniciar no escuro: sempre faça
nginx -te só entãoreload.