Questo argomento tratta la configurazione degli host virtuali. Gli host virtuali consentono ad Apigee Hybrid di gestire le richieste API a più nomi di dominio e di indirizzare i percorsi di base dei proxy a ambienti specifici.
Per specificare a quali percorsi di base del proxy API specifici dell'ambiente devono essere indirizzati, utilizza la proprietà di configurazione virtualhosts.routingRules[]. Per informazioni dettagliate sulle
singole proprietà, consulta virtualhosts
in Riferimento per le proprietà di configurazione. Ad esempio:
...
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 arriva una chiamata API come https://api.example.com/orders, la richiesta
viene inviata al processore di messaggi dell'ambiente test1. Allo stesso modo, se arriva una richiesta a
https://api.example.com/customers, viene instradata all'ambiente
test2.
Aggiungere un nuovo ambiente
Per aggiungere un nuovo ambiente, aggiungi la relativa configurazione alla proprietà envs[] e
aggiungi una nuova voce virtualhosts.routingRules.path che specifica i percorsi di base che
vuoi mappare al nuovo ambiente. Nel seguente esempio, viene aggiunto un nuovo ambiente denominato
test3 e routingRules sono stati aggiornati per
indirizzare due percorsi al nuovo 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
Per applicare l'aggiornamento, devi solo applicare il componente runtime, come segue:
apigeectl apply -f overrides-file.yaml -c runtime
Aggiunta di più host virtuali
La proprietà virtualhosts[] è un array, pertanto puoi crearne più di uno. Ogni host virtuale deve contenere un insieme univoco di alias host: due host virtuali non possono condividere lo stesso alias host. Ad esempio, il nuovo host virtuale dev gestisce
il traffico inviato al dominio 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
Per applicare l'aggiornamento, devi solo applicare il componente runtime, come segue:
apigeectl apply -f overrides-file.yaml -c runtime
Chiavi e certificati TLS
Quando crei un nuovo host virtuale, devi fornire una chiave e un certificato TLS. La chiave/il certificato vengono utilizzati per fornire una comunicazione sicura con il gateway di ingresso.
Spetta a te generare le coppie di chiavi/certificati TLS corrette per la tua configurazione ibrida. Gli argomenti seguenti sono forniti solo come esempi, destinati principalmente a provare o testare una nuova installazione ibrida se non è possibile ottenere le credenziali TLS in un altro modo:
- Consulta Ottenere le credenziali TLS per una serie di passaggi di esempio per creare una coppia di chiavi/certificati TLS autorizzata.
- Puoi utilizzare una coppia di certificato/chiave autofirmata solo a scopo di test. Vedi Generare credenziali TLS autofirmate.