Este exemplo demonstra a reescrita do caminho especificado num pedido para um Application Load Balancer clássico.
Para configurar a gestão de tráfego para balanceadores de carga de aplicações externos globais e balanceadores de carga de aplicações externos regionais, consulte as seguintes páginas:
- Configurar a gestão de tráfego para o balanceador de carga de aplicações externo global
- Configurar a gestão de tráfego para o balanceador de carga de aplicações externo regional
Antes de começar
Leia acerca das reescritas de URLs.
Leia acerca dos mapas de URLs em geral e, em particular, dos correspondentes de caminhos.
O exemplo de reescrita de URL pressupõe que já criou o seu balanceador de carga da aplicação externo seguindo os passos descritos no artigo Configurar um balanceador de carga com contentores do Cloud Storage.
Esse exemplo explica a criação de dois recursos:
http://IP_ADDRESS/never-fetch/three-cats.jpg
http://IP_ADDRESS/love-to-fetch/two-dogs.jpg
Onde
/never-fetch/three-cats.jpg
está armazenado em/cats
, que é o serviço predefinido, e/love-to-fetch/two-dogs.jpg
está armazenado em/dogs
.Neste ponto, o mapa de URLs tem o seguinte aspeto:
gcloud compute url-maps describe http-lb
creationTimestamp: '2020-10-13T11:18:10.561-07:00' defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/cats fingerprint: MKfYsObzqgw= hostRules: - hosts: - '*' pathMatcher: path-matcher-1 id: '1420501688756228493' kind: compute#urlMap name: test-bucket pathMatchers: - defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/cats name: path-matcher-1 pathRules: - paths: - /love-to-fetch/* service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/dogs selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/http-lb
Modificar o mapa de URLs
Neste exemplo, reescreve o URL /love-to-fetch/
para que os utilizadores possam aceder à imagem two-dogs.jpg
com este URL simplificado:
http://IP_ADDRESS/two-dogs.jpg
Para tal, modifique o mapa de URLs do balanceador de carga da seguinte forma:
Consola
Edite o seu equilibrador de carga
- Aceda à página Balanceamento de carga na Google Cloud consola.
Aceda à página Balanceamento de carga - Clique em
http-lb
. - Clique em Editar .
- Mantenha a janela aberta para continuar.
Altere as regras de anfitrião e caminho
- Na coluna do lado esquerdo do ecrã, clique em Regras de anfitrião e caminho.
- Selecione Regra avançada de anfitrião e caminho (redirecionamento de URL, reescrita de URL).
- Clique na linha que contém a regra de caminho não predefinida, neste caso, a linha que tem um asterisco (
*
) para todos os anfitriões. - Clique no ícone de lápis
/love-to-fetch/* Route traffic to a single backend: dogs
.
na linha
- Em Caminhos, elimine
/love-to-fetch/*
e adicione/*
. - Em Ação, selecione Encaminhar tráfego para um único back-end.
- Clique em Ação do suplemento (reescrita do URL).
- Deixe a opção Reescrita do anfitrião em branco.
- Em Reescrita do prefixo do caminho, introduza
/love-to-fetch/
. - Em Backend, selecione
dogs
. - Clique em Guardar.
Clique em Concluído. A nova regra de anfitrião e caminho tem o seguinte aspeto:
Caminhos Ação Back-end Qualquer não correspondência (predefinição) Encaminhe tráfego para um único back-end gatos /* Encaminhe tráfego para um único back-end cães Se tudo parecer correto, clique em Atualizar para atualizar o seu equilibrador de carga HTTP.
gcloud
Crie um ficheiro YAML
/tmp/http-lb.yaml
, certificando-se de que substitui PROJECT_ID pelo ID do seu projeto.Quando um utilizador pede o caminho
/*
, o caminho é reescrito no back-end para a localização real do conteúdo, que é/love-to-fetch/*
.defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/cats hostRules: - hosts: - '*' pathMatcher: path-matcher-1 name: http-lb pathMatchers: - defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/cats name: path-matcher-1 pathRules: - paths: - /* routeAction: urlRewrite: pathPrefixRewrite: /love-to-fetch/ service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/dogs tests: - description: Test routing to backend bucket, dogs host: example.com path: /love-to-fetch/test service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/dogs
Valide o mapa de URLs.
gcloud compute url-maps validate --source /tmp/http-lb.yaml
Se os testes forem aprovados e o comando gerar uma mensagem de êxito, guarde as alterações no mapa de URLs.
Atualize o mapa de URLs.
gcloud compute url-maps import http-lb \ --source /tmp/http-lb.yaml \ --global
Testes
Tome nota do endereço IPv4 que foi reservado:
gcloud compute addresses describe example-ip \ --format="get(address)" \ --global
Depois de aguardar vários minutos para que as alterações se propaguem, pode testar esta configuração.
Na linha de comandos, execute o seguinte comando curl:
curl http://IP_ADDRESS/two-dogs.jpg
Num navegador, abra http://IP_ADDRESS/two-dogs.jpg
.