Nginx na prática: instalação, serviço e primeiros comandos

Capítulo 1

Tempo estimado de leitura: 5 minutos

+ Exercício

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 chamado nginx).
  • Configuração: arquivo principal geralmente em /etc/nginx/nginx.conf e 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 nginx

Iniciar e habilitar no boot

sudo systemctl start nginx
sudo systemctl enable nginx

Verificar se está ativo

systemctl status nginx --no-pager

Procure 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 nginx

Se sua distro usar yum:

sudo yum install -y nginx

Iniciar e habilitar no boot

sudo systemctl start nginx
sudo systemctl enable nginx

Observaçã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:

Continue em nosso aplicativo e ...
  • Ouça o áudio com a tela desligada
  • Ganhe Certificado após a conclusão
  • + de 5000 cursos para você explorar!
ou continue lendo abaixo...
Download App

Baixar o aplicativo

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

Se 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 -v

Para ver mais detalhes (módulos compilados e opções):

nginx -V

Checar status do serviço (systemd)

systemctl status nginx --no-pager

Para ver logs recentes do serviço via journal:

sudo journalctl -u nginx -n 100 --no-pager

Iniciar, parar, reiniciar e recarregar

sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
sudo systemctl reload nginx

Use 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 -t

Saí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 successful

Recarregamento sem downtime (fluxo recomendado)

Fluxo seguro sempre que você editar arquivos em /etc/nginx:

  1. Edite a configuração (ex.: com sudo nano ou sudo vim).

  2. Teste a sintaxe:

    sudo nginx -t
  3. Recarregue 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 OK

Se 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 curl para 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ódigoO que significa na práticaPróxima ação típica
200OK, servindo conteúdoSeguir para configurar sites/hosts
301/302RedirecionamentoVerificar regras de redirect e URL final
403ProibidoChecar permissões e diretiva root/index
404Não encontradoChecar caminho do arquivo e bloco de servidor
500Erro internoChecar logs do Nginx e configuração
502/504Problema com upstreamChecar 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 nginx e systemctl is-enabled nginx.
  • Versão confirmada: nginx -v (útil para compatibilidade de diretivas).
  • Configuração válida: sempre rode sudo nginx -t antes de reload.
  • Reload como padrão: prefira sudo systemctl reload nginx em vez de restart para evitar downtime.
  • Portas ouvindo: valide com ss -lntp se 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/https no firewalld quando aplicável.
  • Logs acessíveis: saiba consultar journalctl -u nginx para erros de start/reload.
  • Evite editar e reiniciar no escuro: sempre faça nginx -t e só então reload.

Agora responda o exercício sobre o conteúdo:

Após editar arquivos de configuração do Nginx, qual fluxo é o mais seguro para aplicar as mudanças com mínimo ou nenhum downtime?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

O fluxo recomendado é validar a configuração com sudo nginx -t e depois usar reload, que aplica mudanças de forma graciosa e evita derrubar conexões ativas, reduzindo ou eliminando downtime.

Próximo capitúlo

Arquitetura de configuração do Nginx: nginx.conf, includes e organização de arquivos

Arrow Right Icon
Capa do Ebook gratuito Nginx para Iniciantes: Servidor Web, Reverse Proxy e Balanceamento Básico
8%

Nginx para Iniciantes: Servidor Web, Reverse Proxy e Balanceamento Básico

Novo curso

13 páginas

Baixe o app para ganhar Certificação grátis e ouvir os cursos em background, mesmo com a tela desligada.