Transformações para regras de receptor
Uma transformação de regra reescreve as solicitações de entrada antes que elas sejam roteadas para os destinos. Reescrever uma solicitação não altera a decisão de roteamento tomada ao avaliar as condições da regra. Isso é útil quando os clientes enviam um URL ou cabeçalho de host diferente do esperado pelos destinos.
O uso de transformações de regras transfere a responsabilidade de modificar caminhos, cadeias de caracteres de consulta e cabeçalhos de host para o balanceador de carga. Isso elimina a necessidade de adicionar uma lógica de modificação personalizada ao código do aplicativo ou confiar em um proxy de terceiros para realizar as modificações.
Os Application Load Balancers são compatíveis com as seguintes transformações para regras de receptor.
Transformações
host-header-rewrite-
Reformula o cabeçalho do host na solicitação. A transformação usa uma expressão regular para corresponder a um padrão no cabeçalho do host e, em seguida, o substitui por uma string de substituição.
url-rewrite-
Reescreve a URL da solicitação. A transformação usa uma expressão regular para corresponder a um padrão na URL de solicitação e, em seguida, o substitui por uma string de substituição.
Noções básicas de transformação
-
Você pode adicionar uma transformação de regravação de cabeçalho de host e uma transformação de regravação de URL por regra.
-
Não é possível adicionar uma transformação a uma regra padrão.
-
Caso não haja correspondência de padrão, a solicitação original será enviada ao destino.
-
Se houver uma correspondência de padrão, mas a transformação falhar, retornaremos um erro HTTP 500.
Transformações de regravação de cabeçalho do host
Você pode modificar o nome de domínio especificado no cabeçalho do host.
exemplo Exemplo de transformação de cabeçalho de host
Você pode especificar uma transformação ao criar ou modificar uma regra. Para obter mais informações, consulte os comandos create-rule e modify-rule. Veja um exemplo de transformação de cabeçalho do host a seguir. Ele transforma o cabeçalho do host em um endpoint interno.
[ { "Type": "host-header-rewrite", "HostHeaderRewriteConfig": { "Rewrites": [ { "Regex": "^mywebsite-(.+).com$", "Replace": "internal.dev.$1.myweb.com" } ] } } ]
Por exemplo, essa transformação reescreve o cabeçalho do host https://mywebsite-example.com/project-a como https://internal.dev.example.myweb.com/project-a.
Transformações de reescrita de URL
Você pode modificar o caminho ou a sequência de caracteres de consulta do URL. Ao reescrever o URL no nível do balanceador de carga, seus URLs de frontend podem permanecer consistentes para usuários e mecanismos de pesquisa, mesmo que seus serviços de backend mudem. Também é possível simplificar strings de caracteres de consulta de URL complexas para facilitar a digitação dos clientes.
Note que você não pode modificar o protocolo ou a porta do URL, somente o caminho e a string de consulta.
exemplo Exemplo de transformação de reescrita de URL
Você pode especificar uma transformação ao criar ou modificar uma regra. Para obter mais informações, consulte os comandos create-rule e modify-rule. Veja um exemplo de transformação de reescrita de URL a seguir. Ela transforma a estrutura do diretório em uma string de consulta.
[ { "Type": "url-rewrite", "UrlRewriteConfig": { "Rewrites": [ { "Regex": "^/dp/([A-Za-z0-9]+)/?$", "Replace": "/product.php?id=$1" } ] } } ]
Por exemplo, essa transformação reescreve o URL da solicitação https://www.example.com/dp/B09G3HRMW como https://www.example.com/product.php?id=B09G3HRMW.
Como as regravações de URL diferem dos redirecionamentos de URL
| Característica | Redirecionamento de URL | Regravação de URL |
|---|---|---|
| Exibição de URL | Alterações na barra de endereço do navegador | Sem alterações na barra de endereço do navegador |
| Códigos de status | Usa 301 (permanente) ou 302 (temporário) | Nenhuma alteração no código de status |
| Processamento | Lado do navegador | Lado do servidor |
| Usos comuns | Alteração de domínio, consolidação de sites, correção de links quebrados | Limpe URLs para SEO, oculte estruturas complexas, forneça o mapeamento de URL legado |