Como as solicitações são correspondentes a uma configuração de rota
Uma rota no Azure Front Door define como o tráfego é tratado quando a solicitação recebida chega à borda do Azure Front Door. As configurações de rota estabelecem uma associação entre um domínio e um grupo de origem. Usando recursos avançados, como Padrão de Correspondência e Conjuntos de regras, você pode ter controle granular sobre o tráfego para seus recursos de back-end.
Observação
Ao usar os conjuntos de regras do Front Door, você pode configurar uma regra para substituir o grupo de origem de uma solicitação. O grupo de origem definido pelo conjunto de regras substitui o processo de roteamento descrito neste artigo.
Importante
O Azure Front Door (clássico) será desativado em 31 de março de 2027. Para evitar qualquer interrupção do serviço, é importante que você migre seus perfis do Azure Front Door (clássico) para a camada Azure Front Door Standard ou Premium até março de 2027. Para obter mais informações, consulte Desativação do Azure Front Door (clássico).
Quando uma solicitação chega à borda do Azure Front Door (clássico), uma das primeira etapas é determinar como rotear a solicitação correspondente para um recurso de back-end e, em seguida, executar uma ação definida na configuração de roteamento. O documento a seguir explica como o Front Door determina qual configuração de rota usar ao processar uma solicitação.
Estrutura de uma configuração de rota do Front Door
Uma regra de roteamento do Front Door é composta de duas partes principais: o "lado esquerdo" e o "lado direito". O Front Door faz a correspondência da solicitação de entrada com o lado esquerdo da rota, enquanto o lado direito define como a solicitação é processada.
Correspondência de entrada (lado esquerdo)
As propriedades a seguir determinam se a solicitação de entrada corresponde à regra de roteamento (lado esquerdo):
- Protocolos HTTP - HTTP ou HTTPS
- Domínio: por exemplo: www.foo.com, *.bar.com
- Caminhos: por exemplo: /*, /users/*, /file.gif
Essas propriedades são expandidas internamente para que cada combinação de Protocolo/Domínio/Caminho seja um possível conjunto de correspondências.
Decisão de roteamento (lado direito)
A decisão de como processar a solicitação depende da possibilidade do cache estar habilitado para a rota. Se uma resposta em cache não estiver disponível, a solicitação será encaminhada para a origem apropriada.
Correspondência de rotas
Esta seção explica como o Front Door corresponde as solicitações às regras de roteamento. O princípio básico é que o Front Door sempre faz a correspondência com a solicitação mais específica avaliando as propriedades do "lado esquerdo": protocolo, domínio e caminho, nessa ordem.
Correspondência do host de front-end
O Azure Front Door utiliza a seguinte lógica para corresponder aos hosts de front-end:
- Verificar se há rotas com uma correspondência exata no host de front-end.
- Se nenhuma correspondência exata for encontrada, a solicitação será rejeitada com um erro 404: Solicitação Incorreta.
As tabelas a seguir ilustram três regras de roteamento diferentes com seus hosts e caminhos de front-end:
Regra de roteamento | Hosts de front-end | Caminho |
---|---|---|
Um | foo.contoso.com | /* |
B | foo.contoso.com | /users/* |
C | www.fabrikam.com, foo.adventure-works.com | /*, /images/* |
A tabela a seguir mostra os resultados correspondentes para as regras de roteamento na tabela anterior:
Host de front-end de entrada | Regras de roteamentos correspondentes |
---|---|
foo.contoso.com | A, B |
www.fabrikam.com | C |
images.fabrikam.com | Erro 404: solicitação inválida |
foo.adventure-works.com | C |
contoso.com | Erro 404: solicitação inválida |
www.adventure-works.com | Erro 404: solicitação inválida |
www.northwindtraders.com | Erro 404: solicitação inválida |
Correspondência de caminho
Depois que o Azure Front Door determinar o host de front-end específico e filtrar possíveis regras de roteamento, ele selecionará as regras de roteamento com base no caminho da solicitação. A lógica a seguir é usada:
- Verifique se há regras de roteamento com uma correspondência exata para o caminho da solicitação.
- Se nenhuma correspondência exata for encontrada, procure uma regra de roteamento com um caminho curinga correspondente.
- Se nenhum caminho de correspondência for encontrado, a solicitação será rejeitada com um erro 404: Solicitação Inválida.
Observação
O *
de caracteres curinga só é válido para caminhos que não tenham outros caracteres depois dele. Além disso, o caractere curinga *
deve ser precedido por uma barra /
. Caminhos sem um caractere curinga são considerados caminhos de correspondência exata. Um caminho que termina em uma barra /
também é um caminho de correspondência exata. Certifique-se de que seus caminhos sigam essas regras para evitar erros.
Observação
- Caminhos sem um caractere curinga são considerados caminhos de correspondência exata. Um caminho que termina com um
/
também é uma correspondência exata. - Os padrões de caminho não diferenciam maiúsculas de minúsculas. Por exemplo,
/FOO
e/foo
são tratados como duplicatas e não têm permissão nos Padrões para corresponder à configuração.
A tabela a seguir lista as regras de roteamento com suas combinações de host de front-end e caminho:
Regra de roteamento | Host de front-end | Caminho |
---|---|---|
Um | www.contoso.com | / |
B | www.contoso.com | /* |
C | www.contoso.com | /ab |
D | www.contoso.com | /abc |
E | www.contoso.com | /abc/ |
F | www.contoso.com | /abc/* |
G | www.contoso.com | /abc/def |
H | www.contoso.com | /path/ |
A tabela a seguir mostra qual regra de roteamento corresponde a uma solicitação de entrada na borda do Azure Front Door:
Solicitação de entrada | Rota correspondente |
---|---|
www.contoso.com/ | Um |
www.contoso.com/a | B |
www.contoso.com/ab | C |
www.contoso.com/abc | D |
www.contoso.com/abzzz | B |
www.contoso.com/abc/ | E |
www.contoso.com/abc/d | F |
www.contoso.com/abc/def | G |
www.contoso.com/abc/defzzz| F | |
www.contoso.com/abc/def/ghi| F | |
www.contoso.com/path | B |
www.contoso.com/path/ | H |
www.contoso.com/path/zzz | B |
Aviso
Se não houver regras de roteamento para um host de front-end de correspondência exata sem um caminho de rota abrangente (/*), nenhuma regra de roteamento será correspondente.
Exemplo de configuração:
Rota | Host | Caminho |
---|---|---|
Um | profile.contoso.com | /api/* |
Tabela de correspondência:
Solicitação de entrada | Rota correspondente |
---|---|
profile.domain.com/other | Nenhum. Erro 404: solicitação inválida |
Decisão de roteamento
Assim que o Azure Front Door corresponder a uma regra de roteamento, ele decidirá como processar a solicitação. Se uma resposta armazenada em cache estiver disponível, ela será retornada ao cliente.
Se um conjunto de regras estiver configurado para a regra de roteamento correspondente, ele será processado em ordem. Os conjuntos de regras podem substituir uma rota forçando o tráfego para um grupo de origem específico. Se nenhum conjunto de regras for definido, a solicitação será encaminhada para o grupo de origem sem alterações.
Se o Azure Front Door (clássico) não tiver uma resposta armazenada em cache, ele verificará se há uma configuração de reescrita de URL. Se nenhum caminho de encaminhamento personalizado for definido, a solicitação será encaminhada para o back-end apropriado no pool de back-end configurado. Se um caminho de encaminhamento personalizado for definido, o caminho da solicitação será atualizado adequadamente e encaminhado para o back-end.
Próximas etapas
- Criar um Azure Front Door.
- Saiba mais sobre a arquitetura de roteamento do Azure Front Door.
- Criar um Azure Front Door (clássico).
- Saiba mais sobre a arquitetura de roteamento do Azure Front Door.