Questo argomento illustra la configurazione dell'host virtuale. Gli host virtuali consentono ad Apigee hybrid di gestire le richieste API a più nomi di dominio e di instradare percorsi di base dei proxy ad ambienti specifici.
Per specificare a quali percorsi di base dei proxy API specifici dell'ambiente devono essere instradati, utilizza la
proprietà di configurazione virtualhosts.routingRules[]
. Per maggiori dettagli sulle singole proprietà, consulta virtualhosts nella documentazione di riferimento sulle 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 una richiesta a
https://api.example.com/customers
arriva, viene instradata all'ambiente
test2
.
Aggiunta di un nuovo ambiente
Per aggiungere un nuovo ambiente, aggiungi la relativa configurazione alla proprietà envs[]
, quindi aggiungi una nuova voce virtualhosts.routingRules.path
che specifichi i percorsi di base da mappare al nuovo ambiente. Nell'esempio seguente, viene aggiunto un nuovo ambiente denominato
test3
e routingRules
è stato aggiornato per
instradare 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 applicare solo il componente runtime
, come descritto di seguito:
apigeectl apply -f overrides-file.yaml -c runtime
Aggiunta di più host virtuali
La proprietà virtualhosts[]
è un array, quindi puoi crearne più di uno. Ogni host virtuale deve contenere un insieme univoco di alias host: non esistono due host virtuali che 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 applicare solo il componente runtime
, come descritto di seguito:
apigeectl apply -f overrides-file.yaml -c runtime
Chiavi e certificati TLS
Quando crei un nuovo host virtuale, devi fornire una chiave TLS e un certificato. La chiave o il certificato vengono utilizzati per fornire una comunicazione sicura con il gateway in entrata.
Spetta a te generare le coppie di certificati/chiavi TLS corrette per la tua configurazione ibrida. I seguenti argomenti vengono forniti solo a titolo di esempio, principalmente allo scopo di 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 la creazione di una coppia di certificato/chiave TLS autorizzata.
- Puoi utilizzare una coppia di certificati/chiavi autofirmati solo a scopo di test. Consulta Generare credenziali TLS autofirmate.