本主題將討論 virtualhosts 設定屬性。Apigee Hybrid 可透過虛擬主機處理 API 要求,並將要求傳送至與環境群組相關聯的 hostalias。詳情請參閱「關於環境和環境群組」主題中的「路由和基本路徑」。
...
virtualhosts:
- name: my-env-group
sslCertPath: ./certs/fullchain.pem
sslKeyPath: ./certs/privkey.key
...當 API Proxy 呼叫傳入時,系統會將其路由至部署 API Proxy 的環境群組主機別名。
如要瞭解如何將 virtualhosts 套用至叢集,請參閱「套用虛擬主機變更」。如要瞭解如何設定 TLS,請參閱「運用 Istio Ingress 設定傳輸層安全標準 (TLS) 和 mTLS」。
新增多個虛擬主機
virtualhosts[] 屬性是陣列,因此您可以建立多個。
...
virtualhosts:
- name: my-env-group-1
sslCertPath: ./certs/fullchain1.pem
sslKeyPath: ./certs/privkey1.key
- name: my-env-group-2
sslCertPath: ./certs/fullchain2.pem
sslKeyPath: ./certs/privkey2.key
...如要瞭解如何設定 TLS,請參閱「運用 Istio Ingress 設定傳輸層安全標準 (TLS) 和 mTLS」。
正在套用 virtualhosts 項變更
如果只新增或變更 virtualhosts 屬性,而沒有其他異動,則可使用 ‑‑settings 標記套用這些變更。這項設定僅適用於 apigeectl;如果是 Helm,我們會套用 apigee-virtualhost 和適當的變數。
Helm
helm upgrade ENV_GROUP_NAME apigee-virtualhost/ \ --namespace apigee \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -f OVERRIDES_FILE.yaml
apigeectl
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE.yaml ‑‑settings virtualhosts
如果您修改 virtualhosts 和 env 設定,請套用變更,但不要使用 Helm 的 ENV_GROUP_NAME apigee-virtualhost/ 和 apigeectl 的 ‑‑settings virtualhosts。更新叢集的方法如下:
Helm
針對要更新的每個環境執行
helm upgrade ENV_NAME apigee-env/ \
--namespace apigee \
--atomic \
--set env=ENV_NAME \
-f OVERRIDES_FILE.yaml
然後升級 apigee-virtualhost 圖表:
helm upgrade ENV_GROUP_NAME apigee-virtualhost/ \
--namespace apigee \
--atomic \
--set envgroup=ENV_GROUP_NAME \
-f OVERRIDES_FILE.yaml
Error: UPGRADE FAILED: "ENV_NAME" has no deployed releasesapigeectl
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE.yaml --env ENV_NAME
或者,如要更新所有環境的元件:
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE.yaml --all-envs
然後將變更套用至虛擬主機:
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE.yaml settings virtualhosts
傳輸層安全標準 (TLS) 金鑰和憑證
virtualhost 屬性需要 TLS 金鑰和憑證。
金鑰/憑證用於與 Ingress 閘道進行安全通訊,且必須與指定環境群組中使用的主機別名相容。
您可以自行決定如何為混合式設定產生適當的 TLS 憑證/金鑰配對。下列主題僅供參考,主要用於試用或測試新的混合式安裝,如果無法以其他方式取得 TLS 憑證,則可參考這些主題:
- 如需建立授權 TLS 憑證/金鑰組的範例步驟,請參閱「取得 TLS 憑證」。
- 您只能使用自行簽署的憑證/金鑰組合進行測試。請參閱「產生自行簽署的傳輸層安全標準 (TLS) 憑證」。