# Colocar uma aplicação em modo de manutenção

Você coloca uma aplicação em modo de manutenção com uma regra de fase de requisição no [rules engine](/pt-br/documentacao/plataforma/applications/rules-engine/) dela. A regra responde a todo visitante com uma página de manutenção e encerra a requisição antes que ela chegue à origem. Remover a regra devolve a aplicação ao normal, sem deploy. Para mudar o que os visitantes veem quando a própria origem retorna um erro, consulte [Custom Pages](/pt-br/documentacao/plataforma/workloads/#custom-pages).

---

## Pré-requisitos

- Uma aplicação na Azion, vinculada a um workload.
- Uma página de manutenção alcançável por URL: uma página em outro site, ou um objeto em um bucket do [Object Storage](/pt-br/documentacao/plataforma/object-storage/) servido pelo seu próprio connector.
- O seu endereço IP público, para manter o seu próprio acesso aberto.

---

## Redirecione todo visitante para a página de manutenção

Para enviar os visitantes a uma página hospedada em outro lugar:

1. **Abra as regras**

   Acesse [Azion Console](https://console.azion.com/) > **Applications** > **sua aplicação** > aba **Rules Engine**.

2. **Selecione Add Rule**

3. **Nomeie a regra e selecione a fase**

   Insira um **Name**, por exemplo `maintenance`, e selecione **Request Phase**.

4. **Defina o critério**

   Em **Criteria**, defina **If `${uri}` starts with `/`**, para que a regra corresponda a toda requisição.

5. **Defina o comportamento**

   Em **Behaviors**, selecione **Redirect To (302 Found)** e insira a URL da página de manutenção. O 302 informa a navegadores e mecanismos de busca que a mudança é temporária.

6. **Selecione Save**

Toda requisição à aplicação agora responde com um 302 para a página de manutenção, e nada chega à origem.

---

## Sirva a página de manutenção do seu próprio domínio

Para manter os visitantes no seu domínio, sirva a página de um bucket do Object Storage em vez de redirecionar. **Rewrite Request** exige o [Application Accelerator](/pt-br/documentacao/plataforma/applications/#application-accelerator) na aplicação.

1. **Envie a página para um bucket**

   Para os passos, consulte [Fazer upload e download de objetos](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/dados/upload-e-download-de-objetos-do-bucket/).

2. **Crie um connector de storage para o bucket**

   Em **Connectors**, crie um connector do tipo *Object Storage* que aponte para o bucket.

3. **Abra as regras**

   Acesse [Azion Console](https://console.azion.com/) > **Applications** > **sua aplicação** > aba **Rules Engine**.

4. **Adicione uma regra de fase de requisição que corresponda a toda requisição**

   Selecione **Add Rule**, selecione **Request Phase** e defina **If `${uri}` starts with `/`** em **Criteria**.

5. **Defina os comportamentos**

   Em **Behaviors**, adicione **Set Connector** com o connector de storage e, em seguida, **Rewrite Request** com `/maintenance.html`.

6. **Selecione Save**

Toda requisição responde com a página de manutenção do bucket, sob o seu próprio domínio.

---

## Mantenha o seu próprio acesso aberto

Para continuar trabalhando na aplicação enquanto os visitantes veem a página de manutenção, exclua o seu endereço da regra:

1. **Abra a regra de manutenção**

   Acesse [Azion Console](https://console.azion.com/) > **Applications** > **sua aplicação** > aba **Rules Engine** e selecione a regra.

2. **Adicione uma condição**

   Em **Criteria**, adicione **and** `${remote_addr}` **is not equal** o seu endereço IP público.

3. **Selecione Save**

As requisições do seu endereço chegam à aplicação normalmente. Toda outra requisição continua recebendo a página de manutenção.

---

## Encerre a manutenção

Para devolver a aplicação ao normal, exclua a regra de manutenção. As demais regras continuam funcionando como antes.

---

## Próximos passos

- [Rules Engine](/pt-br/documentacao/plataforma/applications/rules-engine.md): Cada critério, operador e comportamento que uma regra pode usar.
- [Custom Pages](/pt-br/documentacao/plataforma/workloads.md#custom-pages): Substitua as respostas de erro da origem por páginas que você controla.
- [Minimizar o downtime](/pt-br/documentacao/fundamentos/minimizar-o-downtime.md): Mantenha a aplicação respondendo quando uma origem falha.
- [Testar a velocidade](/pt-br/documentacao/fundamentos/testar-a-velocidade.md): Meça a aplicação com dados de usuários reais e métricas de requisição.
