Por padrão, uma instância do Classic Load Balancer (CLB) envia todo o tráfego para o grupo de servidores de backend configurado no listener. À medida que os serviços crescem, isso pode causar distribuição desigual de recursos, degradação de desempenho e complexidade operacional. A configuração de regras de encaminhamento em um listener do CLB direciona o tráfego para grupos de servidores de backend específicos. Esse recurso permite gerenciamento granular do tráfego e isolamento de serviços, o que melhora a utilização de recursos, garante estabilidade dos serviços e otimiza a experiência do usuário.
Visão geral do recurso
As regras de encaminhamento de um listener do CLB distribuem as solicitações recebidas dos clientes para diferentes servidores de backend com base em nomes de domínio e caminhos de URL.
Principais recursos
-
Encaminhamento baseado em nome de domínio
Modo de correspondência: suporta correspondência exata e correspondência com curinga (incluindo curingas de nível único e multinível). Por exemplo,
www.aliyun.comé uma correspondência exata, enquanto*.aliyun.come*.market.aliyun.comsão correspondências com curinga.-
Prioridade de correspondência: a ordem é Correspondência Exata > Curinga Mais Específico > Curinga Mais Amplo. Isso garante a execução das regras mais precisas primeiro.
A tabela a seguir mostra exemplos de prioridade de correspondência. Um ✓ indica correspondência e um × indica ausência de correspondência.
Mode
Test request URL
Domain forwarding rule
www.aliyun.com
*.aliyun.com
*.market.aliyun.com
Exact Match
www.aliyun.com
✓
×
×
Wildcard match
market.aliyun.com
×
✓
×
info.market.aliyun.com
×
×
✓
-
Encaminhamento baseado em caminho de URL
Lógica de correspondência: o sistema utiliza correspondência por prefixo mais longo com base no caminho da URL. Por exemplo, se houver regras configuradas tanto para /abc quanto para /abcd, uma solicitação para /abcde corresponderá à regra /abcd.
Combinações de políticas: configure várias políticas no mesmo listener e use combinações de nomes de domínio e caminhos de URL para implementar cenários complexos de distribuição de tráfego, como direcionar solicitações de leitura e gravação para diferentes grupos de servidores.
Como funciona
Adicione várias regras de encaminhamento a um único listener, associando cada regra a um grupo vServer diferente. A lógica de correspondência é mostrada na figura a seguir. Sem regras de encaminhamento configuradas, o balanceador de carga encaminha todas as solicitações para o grupo de servidores padrão do listener. Com regras configuradas, o balanceador tenta encontrar uma correspondência. Se uma solicitação corresponder a uma regra, ela será encaminhada para o grupo de servidores associado. Caso contrário, a solicitação seguirá para o grupo de servidores padrão do listener.
Casos de uso
Arquitetura de microsserviços: nessa arquitetura, um aplicativo consiste em vários serviços independentes implantados em diferentes instâncias ou contêineres. O roteamento baseado em caminho direciona as solicitações dos clientes para a instância de serviço específica responsável pela lógica de negócios correspondente. Em uma plataforma de e-commerce, por exemplo, as solicitações de autenticação de usuário, processamento de pedidos e pagamento podem ser roteadas para os respectivos serviços com base no caminho da URL na solicitação HTTP.
Separação de leitura e gravação: para serviços com alta concorrência e requisitos rigorosos de consistência de dados, como processamento de pedidos, implemente a separação de leitura e gravação para otimizar o desempenho e a segurança dos dados. Diferentes instâncias ou clusters de banco de dados tratam as operações de leitura e gravação. As operações de leitura são roteadas para um banco de dados de leitura, enquanto as de gravação vão para o banco de dados de gravação.
Aplicativos multilocatário: aplicativos multilocatário exigem ambientes independentes para fornecer isolamento de serviço e personalização. Use subdomínios específicos do locatário para distinguir pontos de entrada e utilize caminhos de URL para refinar as funções do serviço. Essa abordagem garante segurança e privacidade dos dados de cada locatário, além de permitir experiências e interfaces personalizadas.
Limites
Apenas listeners HTTP e HTTPS da Camada 7 suportam regras de encaminhamento.
Os grupos de servidores de backend especificados nas regras de encaminhamento devem ser grupos vServer.
É possível adicionar até 40 regras de encaminhamento de nome de domínio e URL a um listener HTTP ou HTTPS. Para obter mais informações, consulte Limits.
Cenário de exemplo
Uma plataforma educacional deseja oferecer diversos serviços de aprendizado online, incluindo cursos em vídeo e uma biblioteca de exames, por meio de um único nome de domínio. O serviço de vídeo requer alta largura de banda e capacidade de streaming, enquanto a biblioteca de exames exige computação intensiva e respostas rápidas. Inicialmente, todos os serviços estavam implantados em um único grupo de servidores, o que causou alocação desigual de recursos. Nos horários de pico de streaming, o desempenho da biblioteca de exames era afetado, degradando a experiência do usuário. Além disso, a alta carga do servidor durante picos de tráfego comprometia a estabilidade do serviço.
Para resolver esse problema, a plataforma usa regras de encaminhamento do Alibaba Cloud CLB para rotear o tráfego com base em diferentes caminhos de URL sob o mesmo domínio. Conforme mostrado na figura a seguir, as solicitações para /video/ são encaminhadas para o grupo vServer RS1, garantindo largura de banda e poder de processamento suficientes para o serviço de vídeo. Já as solicitações para /exam/ seguem para o grupo vServer RS2, otimizando os recursos de computação para consultas rápidas e envios. Essa abordagem alcança roteamento preciso e garante que cada subserviço opere de forma independente.
Pré-requisitos
Você created a Virtual Private Cloud (VPC) named VPC1 na região China (Shanghai) e criou dois vSwitches, VSW1 e VSW2, na Zona E e na Zona G, respectivamente.
-
Você criou as instâncias ECS ECS01 e ECS02 em VSW1 e VSW2, respectivamente, e implantou um serviço de aplicativo em cada uma. Nota: Certifique-se de que as regras do grupo de segurança permitam tráfego nas portas usadas pelos serviços de aplicativo.
Os comandos de exemplo a seguir mostram como implantar os aplicativos de teste no ECS01 e no ECS02:
Você created two vServer groups, RS1 and RS2 para sua instância CLB e adicionou o ECS01 ao RS1 e o ECS02 ao RS2. A porta do servidor de backend deve corresponder à porta do serviço de aplicativo. Este exemplo usa a porta padrão do NGINX 80.
Você configurou um HTTP listener ou um HTTPS listener para sua instância CLB.
Você registered a domain name with Alibaba Cloud e concluiu o ICP filing.
Procedimento
Etapa 1: Configurar regras de encaminhamento
Faça login no Classic Load Balancer (CLB) console.
Na barra de navegação superior, selecione a região onde a instância CLB está implantada.
Na página Instances, clique em no ID da instância desejada.
Na aba Listener, localize o listener desejado e clique em Set Forwarding Rule na coluna Actions.
-
No painel Add Forwarding Policy, configure a regra de encaminhamento e clique em Add Forwarding Policy.
Neste exemplo, duas regras de encaminhamento são configuradas: solicitações com a URL
/videosão encaminhadas para o grupo vServer RS1, e solicitações com a URL/examsão encaminhadas para o grupo vServer RS2.Domain Name: insira seu nome de domínio registrado, que deve ter um arquivamento ICP concluído.
-
URL: insira o caminho da solicitação.
A correspondência de caminho para regras de encaminhamento do CLB diferencia maiúsculas de minúsculas. Por exemplo,
/videoe/viDeosão considerados dois caminhos separados e exigem regras de encaminhamento diferentes.
NotaSe o caminho da URL da solicitação contiver caracteres especiais, use codificação de URL. Por exemplo, se uma regra de encaminhamento for configurada para um caminho contendo cerquilha (#), como /#/, a URL da solicitação deverá usar o valor codificado "%23" (por exemplo, /%23/) para garantir a correspondência e o encaminhamento corretos.
Etapa 2: Configurar verificações de integridade
Por padrão, uma verificação de integridade HTTP envia uma solicitação HTTP para a página inicial padrão do aplicativo configurado no servidor. Para usar uma página diferente da inicial na verificação de integridade, especifique seu caminho exato.
Na página Instances, localize a instância CLB desejada e clique em seu ID.
Na aba Listener, localize o listener e clique em Set Forwarding Rule na coluna Actions.
No painel Add Forwarding Rules, em Forwarding Rules, localize a regra de encaminhamento desejada e clique em Modify. Repita esta etapa para outras regras que precisem de configuração.
-
No painel Modify Forwarding Rule, ative Advanced Setting e defina o Health Check Path como o caminho da URL da regra de encaminhamento. Para a regra que usa a URL /video, por exemplo, defina o caminho de verificação de integridade como /video.
Ative a chave Health Check e clique em OK.
Etapa 3: Configurar um registro DNS
Para domínios não registrados no Alibaba Cloud, você deve primeiro add the domain to the Alibaba Cloud DNS console antes de configurar registros DNS.
Se sua instância CLB for voltada para a rede interna, associe primeiro um endereço Elastic IP (EIP) a ela e, em seguida, crie um registro A que mapeie o nome de domínio para o EIP para habilitar o acesso público.
No painel de navegação à esquerda, escolha .
Na página Instances, selecione a instância desejada e copie seu IP Address.
-
Execute as etapas a seguir para adicionar um registro A:
Faça login no Alibaba Cloud DNS console.
Na página Public Zone, localize o nome de domínio desejado e clique em Settings na coluna Actions.
Na página Settings, clique em Add Record.
-
No painel Add Record, configure os parâmetros a seguir. Deixe outros parâmetros com seus valores padrão ou modifique-os conforme necessário. Em seguida, clique em OK.
Parameter
Description
Record Type
Select A from the drop-down list.
Hostname
The prefix of your domain name.
NotaFor a root domain, set the hostname to @.
Record Value
Enter the copied IP address of the CLB instance.
Etapa 4: Testar a configuração
Use um navegador para acessar http://<your domain name>/<URL>/ e verifique se as solicitações são roteadas para os grupos de servidores corretos.
-
Acesse o serviço de vídeo em http://www.example.com/video/ para verificar se a solicitação é roteada para o grupo vServer RS1.
Se o acesso for bem-sucedido, a página retornará o seguinte conteúdo:
Hello World ! This is video service. -
Acesse o serviço de exames em
http://www.example.com/exam/para verificar se a solicitação é roteada para o grupo vServer RS2.Se a página retornar a seguinte resposta, a solicitação foi roteada com sucesso para o serviço de exames:
Hello World ! This is exam service.
Perguntas frequentes
As regras de encaminhamento do CLB suportam redirecionamento de URL?
Não. As regras de encaminhamento do CLB apenas encaminham tráfego. Para configurar redirecionamento de URL, considere usar o Application Load Balancer (ALB). Para obter mais informações, consulte Configure forwarding rules for a listener.
Por que minhas verificações de integridade estão falhando após configurar o encaminhamento baseado em caminho?
Durante uma verificação de integridade, o balanceador de carga ignora as regras de encaminhamento e envia solicitações para o caminho de verificação configurado no listener (o caminho raiz por padrão). Se os serviços de backend responderem de maneira diferente dependendo do caminho da solicitação, as verificações enviadas para o caminho padrão ou para um caminho incompatível poderão falhar. Configure um caminho de verificação de integridade personalizado para cada regra de encaminhamento conforme necessário.
Existem cobranças adicionais pelo uso de regras de encaminhamento baseadas em domínio?
A configuração de regras de encaminhamento baseadas em domínio não gera cobranças. No entanto, se você associar um EIP a uma instância CLB voltada para a rede interna para expô-la à internet, haverá cobrança pelo uso da rede pública. Para obter mais informações sobre faturamento, consulte CLB billing overview.
As regras de encaminhamento são configuradas por listener?
Sim. As regras de encaminhamento de cada listener são independentes e devem ser configuradas separadamente.
Por que ainda consigo acessar os serviços de backend pelo endereço IP público quando o grupo de servidores padrão do listener está vazio?
Quando o caminho da URL de uma solicitação corresponde a uma regra de encaminhamento, o balanceador de carga roteia a solicitação diretamente para o grupo vServer associado a essa regra. O grupo de servidores padrão do listener não participa desse processo. Mesmo que esse grupo padrão não tenha servidores de backend, as solicitações correspondentes a uma regra de encaminhamento são encaminhadas normalmente para o grupo vServer correspondente. Apenas as solicitações que não correspondem a nenhuma regra dependem do grupo padrão. Se ele estiver vazio, essas solicitações sem correspondência retornarão um erro 503.
As regras de encaminhamento do CLB correspondem às solicitações pelo caminho da URL, independentemente de a solicitação usar um nome de domínio ou o endereço IP público do CLB. Acessar o endereço IP público do CLB com um caminho de URL correspondente a uma regra de encaminhamento alcançará com sucesso o grupo vServer associado.
Apenas listeners HTTP e HTTPS suportam regras de encaminhamento baseadas em caminho. Listeners TCP e UDP não oferecem esse suporte e roteiam todas as solicitações para o grupo de servidores padrão do listener; portanto, o comportamento descrito acima não se aplica.
Como configuro regras de encaminhamento para permitir acesso apenas a uma URL específica e retornar 404 para outras?
Configure regras de encaminhamento separadas para os caminhos de URL permitidos e para aqueles que devem retornar 404. Como o encaminhamento baseado em caminho de URL usa correspondência por prefixo mais longo, se dois caminhos tiverem relação de prefixo (como /h5/ e /h5/entryPage/), configure uma regra separada para o caminho mais específico. Por exemplo, para permitir apenas /h5/ e retornar 404 para /h5/entryPage/:
URL
/h5/→ o grupo vServer do seu serviço de negócios.URL
/h5/entryPage/→ um grupo vServer dedicado a retornar 404 (como um serviço Nginx leve).
As solicitações para /h5/entryPage/ corresponderão à Regra 2 e retornarão 404, enquanto outras solicitações sob /h5/ corresponderão à Regra 1 e serão encaminhadas normalmente.
Documentos relacionados
Para configurar vários domínios HTTPS em uma instância CLB, consulte Configure multiple HTTPS websites on a single CLB instance.
Se seu aplicativo usa HTTP e você deseja migrar para o protocolo HTTPS mais seguro, consulte Use CLB to redirect HTTP requests to HTTPS.
Para migrar suavemente do CLB para o ALB, consulte One-click migration of Layer 7 listeners from CLB to ALB e Manually migrate Layer 7 listeners from CLB to ALB.