Criar uma página de erro personalizada para códigos de status HTTP específicos - Amazon CloudFront

Criar uma página de erro personalizada para códigos de status HTTP específicos

Se você preferir exibir uma mensagem de erro personalizada em vez da mensagem padrão, como por exemplo, uma página que usa a mesma formatação do resto do seu site, você pode fazer com que o CloudFront retorne ao visualizador um objeto (como um arquivo HTML) que contenha sua mensagem de erro personalizada.

Para especificar o arquivo que deseja retornar e os erros para os quais o arquivo deve ser retornado, atualize sua distribuição do CloudFront para especificar esses valores. Para obter mais informações, consulte Configurar o comportamento de resposta a erros.

Por exemplo, o seguinte item é uma página de erro personalizada:

Captura de tela de um exemplo de página 404 personalizada da AWS.

Você pode especificar um objeto diferente para cada código de status HTTP compatível ou usar o mesmo objeto para todos os códigos de status compatíveis. Você pode optar por especificar páginas de erro personalizadas para alguns códigos de status e não para outros.

Os objetos fornecidos pelo CloudFront podem estar indisponíveis por vários motivos. Eles se encaixam em duas categorias gerais:

  • Erros de cliente indicam um problema com a solicitação. Por exemplo, um objeto com o nome especificado não está disponível ou o usuário não tem as permissões necessárias para obter um objeto no bucket do Amazon S3. Quando ocorre um erro de cliente, a origem retorna um código de status HTTP no intervalo 4xx para o CloudFront.

  • Erros do servidor indicam um problema com o servidor de origem. Por exemplo, o servidor HTTP está ocupado ou indisponível. Quando ocorre um erro de servidor, seu servidor de origem retorna um código de status HTTP no intervalo 5xx para o CloudFront ou o CloudFront não recebe uma resposta do seu servidor de origem por um determinado período de tempo e assume um código de status 504 (Tempo limite do Gateway).

Os códigos de status HTTP para os quais o CloudFront pode retornar uma página de erro personalizada incluem:

  • 400, 403, 404, 405, 414, 416

  • 500, 501, 502, 503, 504

    Observações
    • Se o CloudFront detectar que a solicitação pode não ser segura, retornará um erro 400 (solicitação inválida) em vez de uma página de erro personalizada.

    • É possível criar uma página de erro personalizada para o código de status HTTP 416 (intervalo solicitado insatisfatório) e alterar o código de status HTTP retornado pelo CloudFront aos visualizadores quando a origem retornar um código de status 416 ao CloudFront. Para ter mais informações, consulte Alterar códigos de resposta exibidos pelo CloudFront. No entanto, o CloudFront não armazena em cache as respostas do código de status 416, portanto, mesmo se você especificar um valor para o TTL mínimo de cache de erro para o código de status 416, o CloudFront não o usará.

    • Em alguns casos, o CloudFront não retorna uma página de erro personalizada para o código de status HTTP 503, mesmo se você configurar o CloudFront para isso. Se o código de erro do CloudFront for Capacity Exceeded ou Limit Exceeded, o CloudFront retornará um código de status 503 ao visualizador sem usar sua página de erro personalizada.

    • Se você criou uma página de erro personalizada, o CloudFront exibirá Connection: close ou Connection: keep-alive para os seguintes códigos de resposta:

      • O CloudFront exibe Connection: close para os códigos de status 400, 405, 414, 416, 500 e 501

      • O CloudFront exibe Connection: keep-alive para os códigos de status 403, 404, 502, 503 e 504.

Para obter uma explicação detalhada de como o CloudFront lida com respostas de erro de sua origem, consulte Como o CloudFront processa códigos de status HTTP 4xx e 5xx da origem.