Como as solicitações são correspondidas a uma configuração de rota
Uma rota na Porta da Frente do Azure define como o tráfego é tratado quando uma solicitação de entrada chega à borda da Porta da Frente do Azure. As configurações de rota estabelecem uma associação entre um domínio e um grupo de origem. Usando recursos avançados, como conjuntos Padrão para correspondência e Regras, você pode ter controle granular sobre o tráfego para seus recursos de back-end.
Nota
Ao usar os conjuntos de regras da Porta da Frente, 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 migrar 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 Aposentadoria (clássica) do Azure Front Door.
Quando uma solicitação chega à borda da Porta da Frente do Azure (clássica), uma das primeiras 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. Este documento explica como o Front Door determina qual configuração de rota usar ao processar uma solicitação.
Estrutura de uma configuração de rota Front Door
Uma regra de roteamento da porta frontal consiste em duas partes principais: o "lado esquerdo" e o "lado direito". Front Door corresponde à solicitação de entrada para o lado esquerdo da rota, enquanto o lado direito define como a solicitação é processada.
Jogo 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 conjunto de correspondência potencial.
Decisão de encaminhamento (lado direito)
A decisão sobre como processar a solicitação depende se o cache está 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 faz a correspondência entre solicitações e regras de roteamento. O princípio básico é que o Front Door sempre corresponde à solicitação mais específica, avaliando as propriedades do "lado esquerdo": protocolo, domínio e caminho, nessa ordem.
Correspondência de host frontend
O Azure Front Door usa as seguintes etapas para corresponder aos hosts front-end:
- Verifique se há rotas com uma correspondência exata no host frontend.
- 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 frontend:
Regra de encaminhamento | Anfitriões front-end | Caminho |
---|---|---|
A | foo.contoso.com | /* |
N | foo.contoso.com | /utilizadores/* |
C | www.fabrikam.com, foo.adventure-works.com | /*, /imagens/* |
A tabela a seguir mostra os resultados correspondentes para as regras de roteamento na tabela anterior:
Host frontend de entrada | Regras de roteamento correspondentes |
---|---|
foo.contoso.com | A, B |
www.fabrikam.com | C |
images.fabrikam.com | Erro 404: Solicitação incorreta |
foo.adventure-works.com | C |
contoso.com | Erro 404: Solicitação incorreta |
www.adventure-works.com | Erro 404: Solicitação incorreta |
www.northwindtraders.com | Erro 404: Solicitação incorreta |
Correspondência de caminho
Depois que o Azure Front Door determina o host frontend específico e filtra possíveis regras de roteamento, ele seleciona as regras de roteamento com base no caminho da solicitação. É utilizada a seguinte lógica:
- Verifique se há regras de roteamento com uma correspondência exata com o caminho da solicitação.
- Se nenhuma correspondência exata for encontrada, procure uma regra de roteamento com um caminho curinga que corresponda.
- Se nenhum caminho correspondente for encontrado, a solicitação será rejeitada com um erro 404: Solicitação incorreta.
Nota
O caractere *
curinga só é válido para caminhos que não têm outros caracteres depois dele. Além disso, o caractere *
curinga deve ser precedido por uma barra /
. Os caminhos sem um 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.
Nota
- Os caminhos sem um curinga são considerados caminhos de correspondência exata. Um caminho que termina com a
/
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 duplicados e não são permitidos na configuração Padrões para corresponder.
A tabela a seguir lista as regras de roteamento com suas combinações de host e caminho de frontend:
Regra de encaminhamento | Host frontend | Caminho |
---|---|---|
A | www.contoso.com | / |
N | 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 | /caminho/ |
A tabela a seguir mostra qual regra de roteamento corresponde a uma solicitação de entrada na borda da Porta da Frente do Azure:
Pedido de entrada | Rota correspondente |
---|---|
www.contoso.com/ | A |
www.contoso.com/a | N |
www.contoso.com/ab | C |
www.contoso.com/abc | D |
www.contoso.com/abzzz | N |
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 | N |
www.contoso.com/path/ | H |
www.contoso.com/path/zzz | N |
Aviso
Se não houver regras de roteamento para um host frontend de correspondência exata sem um caminho de rota catch-all (/*), nenhuma regra de roteamento será correspondida.
Exemplo de configuração:
Rota | Host | Caminho |
---|---|---|
A | profile.contoso.com | /api/* |
Tabela correspondente:
Pedido recebido | Rota correspondente |
---|---|
profile.domain.com/other | Nenhum. Erro 404: Solicitação incorreta |
Decisão de encaminhamento
Quando o Azure Front Door corresponde a uma regra de roteamento, ele decide como processar a solicitação. Se uma resposta em cache estiver disponível, ela será enviada de volta 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 direcionando 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 em cache, ele verificará se há uma configuração de reconfiguração 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 de acordo e, em seguida, encaminhado para o back-end.
Próximos passos
- Crie uma porta frontal do Azure.
- Saiba mais sobre a arquitetura de roteamento do Azure Front Door.
- Crie uma porta frontal do Azure (clássica).
- Saiba mais sobre a arquitetura de roteamento do Azure Front Door.