Neste exemplo, demonstramos como reescrever o caminho especificado em uma solicitação de um balanceador de carga de aplicativo clássico.
Para configurar o gerenciamento de tráfego para balanceadores de carga de aplicativos externos e globais, consulte as seguintes páginas:
- Como configurar o gerenciamento de tráfego para o balanceador de carga de aplicativo externo global
- Como configurar o gerenciamento de tráfego para balanceador de carga de aplicativo externo regional
Antes de começar
Leia sobre substituições de URL.
Leia especificamente sobre mapas de URL em geral e correspondência de caminho.
O exemplo de regravação de URL pressupõe que você já tenha criado o balanceador de carga de aplicativo externo seguindo as etapas descritas em Como configurar um balanceador de carga com buckets do Cloud Storage.
Esse exemplo mostra a criação de dois recursos:
http://IP_ADDRESS/never-fetch/three-cats.jpg
http://IP_ADDRESS/love-to-fetch/two-dogs.jpg
Em que
/never-fetch/three-cats.jpg
está armazenado em/cats
, que é o serviço padrão, e/love-to-fetch/two-dogs.jpg
está armazenado em/dogs
.Neste ponto, o mapa de URL fica assim:
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
Como modificar o mapa de URL
Neste exemplo, você regrava o URL /love-to-fetch/
para que os usuários possam acessar a
imagem two-dogs.jpg
com este URL simplificado:
http://IP_ADDRESS/two-dogs.jpg
Para fazer isso, modifique o mapa de URL do balanceador de carga da seguinte maneira:
Console
Editar o balanceador de carga
- Acesse a página Balanceamento de carga no Console do Google Cloud.
Acessar a página "Balanceamento de carga" - Clique em
http-lb
. - Clique em Editar .
- Mantenha a janela aberta para continuar.
Alterar as regras de host e caminho
- Na coluna à esquerda da tela, clique em Regras de host e de caminho.
- Selecione Regra avançada de host e caminho (redirecionar URL, reescrever URL).
- Clique na linha que contém a regra de caminho não padrão. Neste caso, a
linha que tem um asterisco (
*
) para todos os hosts. - Clique no ícone de lápis
/love-to-fetch/* Route traffic to a single backend: dogs
.
na linha
- Em Caminhos, exclua
/love-to-fetch/*
e adicione/*
. - Em Ação, selecione Encaminhar o tráfego para um back-end único.
- Clique em Ação de complemento (regravação de URL).
- Deixe a opção Reescrever o host em branco.
- Em regravar prefixo do caminho, digite
/love-to-fetch/
. - Em Back-end, selecione
dogs
. - Clique em Salvar.
Clique em Concluído. A nova regra de host e caminho é a seguinte:
Caminhos Ação Back-end Todos sem correspondência (padrão) Encaminhar o tráfego para um back-end único gatos /* Encaminhar o tráfego para um back-end único cães Se tudo parecer certo, clique em Atualizar para atualizar o balanceador de carga HTTP.
gcloud
Crie um arquivo YAML
/tmp/http-lb.yaml
, certificando-se de substituir PROJECT_ID pelo ID do projeto.Quando um usuário solicita o caminho
/*
, ele é reescrito no back-end para o local 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
Validar o mapa de URL.
gcloud compute url-maps validate --source /tmp/http-lb.yaml
Se os testes forem aprovados e o comando resultar em uma mensagem de êxito, salve as alterações no mapa de URL.
Atualize o mapa de URL.
gcloud compute url-maps import http-lb \ --source /tmp/http-lb.yaml \ --global
Teste
Anote o endereço IPv4 que foi reservado:
gcloud compute addresses describe example-ip \ --format="get(address)" \ --global
Depois de esperar vários minutos até que as alterações se propaguem, teste essa configuração.
Na linha de comando, execute o seguinte comando curl:
curl http://IP_ADDRESS/two-dogs.jpg
Em um navegador, abra http://IP_ADDRESS/two-dogs.jpg
.