Artigo original: HTTP Error 503 Service Unavailable Explained – What the 503 Error Code Means

Erros acontecem – pode ter havido uma manutenção inesperada, um bug que passou despercebido ou uma página que todo mundo começa a acessar e o fluxo de conexões derruba o servidor.

Se você já esteve on-line por algum tempo, com certeza já viu a mensagem de erro bastante vaga dizendo: 503 Service Unavailable (503 Serviço indisponível).

Neste artigo, analisaremos códigos de status do HTTP, o que representa o erro 503 e algumas maneiras possíveis de resolvê-lo – para um site que você está tentando visitar ou para seu próprio site.

Uma visão geral dos códigos de status do HTTP

Os servidores que hospedam páginas da web escutam solicitações dos navegadores ou dos dispositivos, também conhecidos como clients. O servidor, então, usa alguns códigos de status diferentes para se comunicar.

Esses códigos de status são organizados em classes diferentes, indicadas pelo primeiro número do código de status:

  • 1xx: Informações – o servidor ainda está processando a solicitação
  • 2xx: Sucesso – a solicitação teve êxito e o servidor responde com a página ou com o recurso
  • 3xx: Redirecionamento – a página ou o recurso foi movido e o servidor responderá com o novo local
  • 4xx: Erro do client – há um erro na solicitação do navegador ou do dispositivo
  • 5xx: Erro do servidor – há um erro com o servidor

Os últimos dois algarismos de cada código de status do HTTP representam um status mais específico para cada classe. Por exemplo, 301 significa que a página ou recurso foi movido permanentemente, enquanto 302 significa que a mudança é apenas temporária.

Confira esta página para ver uma lista de códigos de status comuns do HTTP e seu significado: https://pt.wikipedia.org/wiki/Lista_de_códigos_de_estado_HTTP

A maioria dos códigos de status passa totalmente despercebida, o que não é um problema, pois isso significa que tudo está funcionando bem. Somente quando recebemos uma mensagem de erro no intervalo 4xx-5xx é que percebemos um código de status, já que é nessa situação que você poderá ver uma página assim:

E20Ry-1
Página de erro 503 típica – Fonte: Stack Overflow

Agora que você tem um entendimento básico dos códigos de status do HTTP, vamos examinar o erro 503 Serviço indisponível em mais detalhes.

O que significa o código de erro 503?

Como mencionamos acima, os códigos de status 5xx significam que há um problema com o servidor.

Um erro 503 Serviço indisponível significa que a página ou recurso está indisponível. Pode haver muitas razões para um servidor retornar um erro 503. Algumas das razões mais comuns são uma manutenção, um erro ou bug no código do servidor ou ainda um aumento drástico no tráfego que faz com que o servidor seja derrubado.

A mensagem que é enviada com o erro 503 pode variar dependendo do servidor de onde ela está vindo, mas abaixo vemos algumas das mensagens mais comuns:

- 503 Serviço indisponível
- 503 Serviço temporariamente indisponível
- Erro de servidor HTTP 503
- Erro de HTTP 503
- Erro 503 Serviço indisponível
- O servidor está temporariamente incapacitado de atender à sua solicitação devido a um período de manutenção ou a problemas de capacidade. Tente novamente mais tarde.

Fonte

Seja qual for a razão para o erro 503, ele geralmente é temporário – o servidor reiniciará, o tráfego será reduzido e o problema se resolverá sozinho.

Como resolver o erro 503 Serviço indisponível

Ao tentar resolver um erro 503, existem duas situações gerais.

A primeira é quando você é o usuário final e está tentando visitar um site do qual você não é o dono. Na segunda, você é o dono do site que está lançando erros do tipo 503 para aqueles que estão tentando visitá-lo.

O método para resolver os erros do tipo 503 difere, dependendo de qual das situações é a sua. Vamos ver algumas das coisas que podemos fazer quando somos os usuários finais ao vermos um erro 503.

Como resolver um erro 503 Serviço indisponível como usuário final

Como os códigos de status 5xx representam que o erro é do lado do servidor, não há muito que você possa fazer diretamente.

Mesmo que os erros 503 sejam, em geral, temporários, há algumas coisas que você pode fazer enquanto aguarda.

1: Atualizar a página

Às vezes, o erro é tão temporário que uma simples atualização já basta para resolvê-lo. Com a página aberta, apenas pressione Ctrl - R no Windows e no Linux, ou Cmd - R no macOS para atualizar a página.

2: Veja se a página também está fora do ar para outras pessoas

A próxima coisa que você pode fazer é usar um serviço como o Is It Down Right Now? ou o Down For Everyone Or Just Me para ver se outras pessoas estão tendo o mesmo erro.

Você só precisa ir a um desses sites e inserir o URL para a página que você está tentando visitar.

O serviço fará o ping para o URL que você inseriu e vai ver se obtém uma resposta. Em seguida, ele mostrará a você algumas estatísticas e gráficos interessantes sobre a página:

image-44
Conferindo o freeCodeCamp no Is It Down Right Now?

Se rolar para baixo, você verá alguns comentários de outras pessoas. Em geral, as pessoas darão uma localização geral e outros dados. Assim, essa pode ser uma boa maneira de descobrir se o erro está afetando apenas determinadas regiões ou dispositivos específicos.

3: Reinicie seu roteador

Às vezes, o problema tem a ver com uma falha do servidor de DNS.

DNS é a sigla para Domain Name System (em português, sistema de nome de domínio).  Basicamente, ele atua como um tradutor entre os endereços IP e os URLs, que podem ser lidos mais facilmente.

Por exemplo, você pode visitar o Google inserindo seu endereço IP diretamente (172.217.25.206) ou simplesmente inserindo o URL www.google.com.

É o DNS, geralmente hospedado em um servidor, que trata disso internamente.

Isso tudo serve para dizer que muitos roteadores mantêm respostas dos servidores DNS em cache (www.google.com <==> 172.217.25.206). Algumas vezes, no entanto, esse cache pode ficar corrompido e causar erros.

Um modo fácil de redefinir ou de fazer o "flush" do cache (limpá-lo) é reiniciar seu roteador. Basta tirar seu roteador da tomada por cinco segundos e, depois, conectá-lo à rede elétrica novamente.

Ele deve reiniciar após um minuto e todos os seus dispositivos devem se reconectar automaticamente. Após eles se conectarem, tente visitar o site novamente.

Como resolver um erro 503 Serviço indisponível como proprietário do site

Se você é o proprietário/desenvolvedor do site que está retornando erros do tipo 503, há mais algumas coisas que você pode fazer para diagnosticar e resolver o problema.

Aqui temos algumas dicas gerais para se começar:

1: Reiniciar o servidor

Desenvolver é difícil – mesmo uma simples página estática pode ter várias partes interconectadas, podendo ser difícil detectar o que está causando o erro 503.

Às vezes, o melhor a se fazer é reiniciar o servidor e ver se isso resolve o problema.

1rs7t0-1
Fonte: imgflip

O método exato para se reiniciar o sistema pode variar, mas, em geral, você pode acessá-lo a partir do painel do seu provedor ou usando o SSH para entrar no servidor e executando um comando de reinicialização.

O servidor deverá reiniciar após alguns minutos. Se você configurou tudo para executar automaticamente no momento do boot, pode visitar seu site e ver se tudo está funcionando.

2: Verificar os logs do servidor

A próxima coisa a se fazer é verificar os logs (em português, registros).

O local dos logs do servidor pode variar. Ele depende do tipo de serviço que você está executando, mas normalmente os encontramos em /var/log/....

Dê uma olhada nesse diretório e veja se pode encontrar algo. Se não puder, confira o manual dos seus programas executando man nome_do_programa.

3: Confira se há uma manutenção automática em andamento

Alguns provedores de serviços oferecem atualizações de pacotes e manutenção automatizadas. Normalmente, isso é bom – elas geralmente ocorrem durante um tempo de inatividade e ajudam a garantir que tudo está atualizado.

Por vezes, no entanto, erros 503 ocorrem devido a essas sessões de manutenção programada.

Por exemplo, alguns provedores de hospedagem que se especializam na hospedagem de WordPress atualizam o WordPress automaticamente sempre que há uma nova versão. O WordPress retorna automaticamente um erro 503 Serviço indisponível quando está sendo atualizado.

Verifique com seu provedor de serviços para ver se o erro 503 está sendo causado por uma manutenção programada.

4: Verifique as configurações do firewall do servidor

Às vezes, erros do tipo 503 Serviço indisponível são causados por um firewall mal configurado, onde as conexões podem até passar, mas não conseguem retornar ao client.

Seu firewall também pode precisar de configurações especiais para um CDN, onde várias conexões para uma pequena quantidade de endereços IP podem ser interpretadas incorretamente como um ataque do tipo DDoS.

O método exato de ajustar as configurações do seu firewall dependerão de diversos fatores. Examine seus processos e os painéis do provedor de serviços para ver onde você configura o firewall.

5: Confira o código

Bugs e erros podem acontecer. Por mais que você tente, é impossível pegar todos eles. Às vezes, um deles pode escapar e acabar causando um erro do tipo 503.

Se você já tentou de tudo e seu site ainda estiver mostrando um erro 503 Serviço indisponível, a causa pode estar em algum ponto do código.

Confira o código do lado do servidor. Preste especial atenção a tudo o que tenha a ver com expressões regulares – um pequeno bug de regex (texto em inglês) foi o que causou um grande aumento no uso de CPU, períodos fora do ar e cerca de três dias de pânico aqui no freeCodeCamp.

Por sorte, você poderá encontrar o culpado, fazer o conserto do problema e tudo voltará ao normal.

Em resumo

O que vimos aqui deve ser tudo o que você precisa saber sobre os erros 503 Serviço indisponível. Embora, normalmente, não haja muito o que você possa fazer ao ver um erro 503, talvez alguns desses passos possam ajudá-lo da próxima vez em que você encontrar algum.

Permaneça seguro e siga atualizando até fazer funcionar :)