Pular para o conteúdo
Início » Como reiniciar o Nginx: restart, reload e Docker

Como reiniciar o Nginx: restart, reload e Docker

Veja como reiniciar o Nginx (nginx restart e nginx reload) em distribuições Linux diferentes e em ambientes Docker. Os comandos variam conforme o gerenciador de serviços do sistema.

Comandos rápidos

Se você só precisa do comando, use o bloco abaixo conforme o seu ambiente e pule para a seção de teste de configuração antes de aplicar:

# systemd (Ubuntu 16+, Debian 8+, CentOS 7+)
sudo systemctl restart nginx
sudo systemctl reload nginx

# service (System V)
sudo service nginx restart
sudo service nginx reload

# sinal direto do Nginx
sudo nginx -s reload

# Docker
docker exec  nginx -s reload

# Docker Compose
docker compose exec  nginx -s reload

Restart e reload no Linux

Abaixo estão os comandos organizados por gerenciador de serviço. Use o que corresponde à sua distribuição.

systemd

Gerenciador padrão do Ubuntu 16+, Debian 8+, CentOS 7+ e derivados:

sudo systemctl restart nginx
sudo systemctl reload nginx

service (System V)

sudo service nginx restart
sudo service nginx reload

/etc/init.d/ (System V direto)

sudo /etc/init.d/nginx restart
sudo /etc/init.d/nginx reload

Upstart (initctl)

sudo initctl restart nginx
sudo initctl reload nginx

rc (BSD e derivados)

sudo /etc/rc.d/nginx restart
sudo /etc/rc.d/nginx reload

Sinal direto via parâmetro -s

nginx -s reload

Nginx no Docker: reload e restart

Em containers Docker, o processo principal do Nginx é o PID 1. Isso significa que não existe systemd ou service dentro do container. O jeito correto de recarregar a configuração é enviar o sinal reload diretamente ao processo do Nginx, sem reiniciar o container.

Recarregar configuração (docker exec)

Use docker exec para enviar o sinal reload ao Nginx dentro do container em execução:

# Verificar o nome ou ID do container
docker ps

# Testar a configuração antes de recarregar
docker exec  nginx -t

# Recarregar sem derrubar o container
docker exec  nginx -s reload

Recarregar configuração (Docker Compose)

# Testar a configuração
docker compose exec  nginx -t

# Recarregar sem derrubar o serviço
docker compose exec  nginx -s reload

Reiniciar o container inteiro

Só use os comandos abaixo quando for necessário reiniciar o container em si, por exemplo após trocar a imagem ou alterar variáveis de ambiente. Isso derruba o serviço completamente:

# docker CLI
docker restart 

# Docker Compose
docker compose restart 

Testar o arquivo de configuração

Antes de qualquer restart ou reload, teste o arquivo de configuração com o parâmetro -t. Se houver erro de sintaxe, o Nginx aborta a operação e mantém a configuração anterior.

nginx -t

Resposta esperada quando está tudo correto:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Recomendamos combinar sempre o teste com o reload usando o operador &&, que executa o segundo comando somente se o primeiro passar:

nginx -t && sudo systemctl reload nginx
nginx -t && sudo service nginx reload
nginx -t && sudo /etc/init.d/nginx reload
nginx -t && nginx -s reload

# Docker
docker exec  nginx -t && docker exec  nginx -s reload

Encontrar onde o Nginx está instalado

Para encontrar o caminho do binário do Nginx, use o comando which:

which nginx

Para verificar se o processo está rodando e qual o caminho em uso:

ps aux | grep nginx

Para matar o processo e iniciar manualmente:

sudo killall nginx

# Iniciar manualmente com o caminho completo
/usr/sbin/nginx
# ou
/usr/local/nginx/sbin/nginx

Diferença entre restart e reload

reload — recarrega o arquivo de configuração e mantém qualquer conexão de cliente existente intacta. Se a nova configuração tiver erro de sintaxe, a operação é abortada e a configuração anterior continua ativa. Use sempre que possível.

restart — reinicia completamente o servidor Nginx e fecha todas as conexões de cliente existentes. Use apenas quando for necessário reiniciar o processo, por exemplo após atualizar o binário do Nginx.

FAQ

Qual a diferença entre nginx reload e nginx restart?

O reload reaplica a configuração sem derrubar o serviço nem encerrar conexões ativas. O restart reinicia o processo completo e encerra todas as conexões. Para aplicar mudanças no nginx.conf, prefira sempre o reload.

Como recarregar o Nginx dentro de um container Docker?

Use docker exec <container> nginx -s reload. Dentro de containers Docker não há systemd, então o sinal deve ser enviado diretamente ao processo do Nginx com o parâmetro -s.

Como reiniciar o Nginx em Docker compose?

Use docker compose exec <container> nginx -s reload. docker não tem sistemd, reinicie o processo do Nginx com o parâmetro -s

O que fazer quando nginx -t retorna erro?

O próprio comando indica o arquivo e a linha com o problema. Abra o arquivo apontado, corrija o erro de sintaxe e rode nginx -t novamente antes de aplicar o reload.

É seguro fazer reload em produção?

Sim. O reload é o método recomendado para aplicar mudanças em produção. Ele valida a nova configuração antes de aplicar e mantém a antiga se encontrar erro, então não há risco de deixar o servidor fora do ar por um arquivo incorreto.

Quando devo usar restart em vez de reload?

Use restart apenas quando precisar reiniciar o processo do Nginx em si, por exemplo após atualizar o binário, trocar módulos carregados dinamicamente ou mudar configurações que exigem reinício completo.

Marcações:

Comentários

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *