Este tópico aborda a configuração do anfitrião virtual. Os anfitriões virtuais permitem que o Apigee Hybrid processe pedidos de API para vários nomes de domínio e encaminhe os caminhos base do proxy para ambientes específicos.
Para especificar para que caminhos base do proxy de API específicos do ambiente devem ser encaminhados, use a propriedade de configuração virtualhosts.routingRules[]. Para ver detalhes sobre as propriedades individuais, consulte virtualhosts na referência da propriedade de configuração. Por exemplo:
...
virtualhosts:
- name: vhost-one
hostAliases: ["api.example.com"]
sslCertPath: ./certs/fullchain.pem
sslKeyPath: ./certs/privkey.pem
routingRules:
- paths:
- /orders
- /items
env: test1
- paths:
- /customers
env: test2
envs:
- name: test1
serviceAccountPaths:
synchronizer: ./sa/synchronizer.json
udca: ./sa/udca.json
- name: test2
serviceAccountPaths:
synchronizer: ./sa/synchronizer.json
udca: ./sa/udca.json
Quando chega uma chamada de API, como: https://api.example.com/orders, o pedido
é enviado para o processador de mensagens do ambiente test1. Da mesma forma, se receber um pedido para
https://api.example.com/customers, este é encaminhado para o ambiente test2.
Adicionar um novo ambiente
Para adicionar um novo ambiente, adicione a respetiva configuração à propriedade envs[] e
adicione uma nova entrada virtualhosts.routingRules.path que especifique os caminhos base que quer mapear para o novo ambiente. No exemplo seguinte, é adicionado um novo ambiente com o nome
test3 e os routingRules foram atualizados para
encaminhar dois caminhos para o novo ambiente:
virtualhosts:
- name: vhost-one
hostAliases: ["api.example.com"]
sslCertPath: ./certs/fullchain.pem
sslKeyPath: ./certs/privkey.pem
routingRules:
- paths:
- /orders
- /items
env: test1
- paths:
- /v0/hello
- /httpbin
env: test2
- paths:
- /v0/inventory
- /v0/customers
env: test3
envs:
- name: test1
serviceAccountPaths:
synchronizer: ./sa/synchronizer.json
udca: ./sa/udca.json
- name: test2
serviceAccountPaths:
synchronizer: ./sa/synchronizer.json
udca: ./sa/udca.json
- name: test3
serviceAccountPaths:
synchronizer: ./sa/synchronizer.json
udca: ./sa/udca.json
Para aplicar a atualização, só tem de aplicar o componente runtime, da seguinte forma:
apigeectl apply -f overrides-file.yaml -c runtime
Adicionar vários anfitriões virtuais
A propriedade virtualhosts[] é uma matriz e, por isso, pode criar mais do que uma. Cada anfitrião virtual tem de conter um conjunto único de aliases de anfitriões: não podem existir dois anfitriões virtuais
com o mesmo alias de anfitrião. Por exemplo, o novo anfitrião virtual dev processa o tráfego enviado para o domínio api.internal.com.
virtualhosts:
- name: vhost-one
hostAliases: ["api.example.com"]
sslCertPath: ./certs/fullchain.pem
sslKeyPath: ./certs/privkey.pem
routingRules:
- paths:
- /orders
- /items
env: test1
- paths:
- /v0/hello
- /httpbin
env: test2
- paths:
- /v0/inventory
- /v0/customers
env: test3
- name: vhost-two
hostAliases: ["api.internal.com"]
sslCertPath: ./certs/fullchain.pem
sslKeyPath: ./certs/privkey.pem
routingRules:
- paths:
- /orders
- /items
env: test1
- paths:
- /v0/hello
- /httpbin
env: test2
- paths:
- /v0/inventory
- /v0/customers
env: test3
envs:
- name: test1
serviceAccountPaths:
synchronizer: ./sa/synchronizer.json
udca: ./sa/udca.json
- name: test2
serviceAccountPaths:
synchronizer: ./sa/synchronizer.json
udca: ./sa/udca.json
- name: test3
serviceAccountPaths:
synchronizer: ./sa/synchronizer.json
udca: ./sa/udca.json
Para aplicar a atualização, só tem de aplicar o componente runtime, da seguinte forma:
apigeectl apply -f overrides-file.yaml -c runtime
Chaves e certificados TLS
Quando cria um novo anfitrião virtual, tem de fornecer uma chave e um certificado TLS. A chave/certificado é usado para fornecer uma comunicação segura com o gateway de entrada.
A forma como gera os pares de chaves/certificados TLS adequados para a sua configuração híbrida é da sua responsabilidade. Os seguintes tópicos são fornecidos apenas como exemplos, destinados principalmente a experimentar ou testar uma nova instalação híbrida se não for possível obter credenciais TLS de outra forma:
- Consulte o artigo Obtenha credenciais TLS para ver um conjunto de passos de exemplo para criar um par de chave/certificado TLS autorizado.
- Pode usar um par de chaves/certificado autoassinado apenas para fins de teste. Consulte o artigo Gere credenciais TLS autoassinadas.