Categorias

Última atualização Março 09, 2020

Heroku HTTP roteador serve sem estilo HTML com código de status HTTP 503 (Serviço Indisponível) quando o seu aplicativo encontrar um erro de nível de sistema, ou enquanto o modo de manutenção está ativado.

outros erros, tais como erros de aplicação (um 404 ou 500), irão exibir a página de erro da sua aplicação e não a página de erro de Heroku. Apenas os erros de nível de sistema que resultam em nenhuma resposta, ou um malformado, irão mostrar a página de erro do Heroku aqui discutida.

depuração

Logs são o primeiro lugar para olhar quando seus usuários relatam ver as páginas de erro Heroku. Use o comando heroku logs para visualizar o fluxo de eventos unificado para seu aplicativo e o estado dos componentes da plataforma Heroku que suportam seu aplicativo.

$ heroku logs2011-03-01T16:16:29-08:00 heroku: State changed from starting to crashed2011-03-01T16:16:59-08:00 heroku: at=error code=H10 desc="App crashed" method=GET path=/ host=myapp.herokuapp.com fwd=17.17.17.17 dyno= connect= service= status=503 bytes=

neste exemplo, o roteador tentou servir uma página para o aplicativo, mas o processo da web está travado. A entrada de log Error H10 contém o código de erro H10 que identifica a causa desse problema específico. Consulte a lista completa de códigos de erro para determinar a causa do erro que você está vendo.

para saber mais sobre o rastreamento de erros que podem levar a que as páginas de erro sejam geradas, visite o artigo sobre o registro. Se precisar de depurar mais, Aprenda a usar o SSH num dyno.

personalizar as páginas

as páginas mostradas aos seus utilizadores quando a aplicação encontra um erro do sistema ou é colocada no estado de manutenção podem ser personalizadas. Personalizar estas páginas permite-lhe apresentar uma UI mais consistente aos seus utilizadores.

crie e guarde as páginas personalizadas

crie as suas páginas personalizadas como HTML estático. Você pode querer usar o padrão HTML servido por Heroku como um modelo:

  • https://www.herokucdn.com/error-pages/application-error.html
  • https://www.herokucdn.com/error-pages/no-such-app.html
  • https://www.herokucdn.com/error-pages/maintenance-mode.html
  • https://www.herokucdn.com/error-pages/ssl-cert-error.html

Você pode fazer referência a imagens ou a CSS do HTML contanto que você usar caminho relativo (por exemplo, <img src="error.png">) e você fazer upload de outros activos no mesmo lugar que o HTML.

você pode hospedar as páginas em qualquer lugar que possa servir páginas da web. Recomendamos o upload para o Amazon S3. Se você usar o S3, não se esqueça de definir o HTML e todos os ativos para serem legíveis publicamente.

devido às configurações de segurança no IFrame, os links em sua página de erro personalizada podem não funcionar, a menos que você especifique “target=_blank” no HTML.

Configurar seu aplicativo

Definir o ERROR_PAGE_URL e MAINTENANCE_PAGE_URL config vars para o acesso público URLs de suas páginas personalizadas:

$ heroku config:set \ ERROR_PAGE_URL=//s3.amazonaws.com/<your_bucket>/your_error_page.html \ MAINTENANCE_PAGE_URL=//s3.amazonaws.com/<your_bucket>/your_maintenance_page.html

Teste

Para testar a sua página de manutenção, tipo de:

$ heroku maintenance:on$ heroku open

A página personalizada será servido e seus logs de aplicativo mostrará um H80 código para que o web hit indicando que uma página de manutenção, serviu para o usuário.

$ heroku logs -p router -n 12010-10-08T17:44:18-07:00 heroku: at=info code=H80 desc="Maintenance mode" method=GET path=/ host=myapp.herokuapp.com fwd=17.17.17.17 dyno= connect= service= status=503 bytes=

para testar sua página de erro, você pode enviar uma implantação incorreta, como colocar um erro de sintaxe em um arquivo de configuração de chave, ou criando um caminho em seu aplicativo que dorme por 35 segundos (acionando assim o tempo limite de solicitação de erro H12. Visite um aplicativo ou caminho com esse erro, enquanto observa os logs:

$ heroku logs --tail2010-10-08T18:04:40-07:00 app: Sleeping 35 seconds before I serve this page2010-10-08T18:05:10-07:00 heroku: at=error code=H12 desc="Request timeout" method=GET path=/ host=myapp.herokuapp.com fwd=17.17.17.17 dyno=web.1 connect=6ms service=30001ms status=503 bytes=02010-10-08T18:05:15-07:00 app: Done sleeping

a página de erro personalizada será exibida em seu navegador.

SSL

se o seu site for acessado via SSL, alguns navegadores exibirão um aviso ou erro se as páginas de manutenção e erro também não usarem um URL HTTPS. Certifique-se de usar o aplicativo correspondente e os protocolos de página de erro.

Deixe uma resposta

O seu endereço de email não será publicado.