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 nginxservice (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 reloadUpstart (initctl)
sudo initctl restart nginx
sudo initctl reload nginxrc (BSD e derivados)
sudo /etc/rc.d/nginx restart
sudo /etc/rc.d/nginx reloadSinal direto via parâmetro -s
nginx -s reloadNginx 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 -tResposta 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 successfulRecomendamos 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 nginxPara verificar se o processo está rodando e qual o caminho em uso:
ps aux | grep nginxPara matar o processo e iniciar manualmente:
sudo killall nginx
# Iniciar manualmente com o caminho completo
/usr/sbin/nginx
# ou
/usr/local/nginx/sbin/nginxDiferenç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.