이 주제에서는 가상 호스트 구성에 대해 설명합니다. 가상 호스트를 통해 Apigee Hybrid는 여러 도메인 이름에 대한 API 요청을 처리하고 프록시 기본 경로를 특정 환경으로 라우팅합니다.
라우팅되는 환경별 API 프록시 기본 경로를 지정하려면 virtualhosts.routingRules[]
구성 속성을 사용합니다. 개별 속성에 대한 자세한 내용은 구성 속성 참조의 virtualhosts를 참조하세요. 예를 들면 다음과 같습니다.
... 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
https://api.example.com/orders
와 같은 API 호출이 수신되면 요청이 test1
환경의 메시지 프로세서로 전송됩니다. 마찬가지로 https://api.example.com/customers
에 대한 요청이 수신되면 test2
환경으로 라우팅됩니다.
새 환경 추가
새 환경을 추가하려면 구성을 envs[]
속성에 추가하고 새 환경에 매핑할 기본 경로를 지정하는 새 virtualhosts.routingRules.path
항목을 추가합니다. 다음 예시에서는 test3
라는 새로운 환경이 추가되고 두 경로를 새 환경으로 라우팅하도록 routingRules
가 업데이트되었습니다.
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
업데이트를 적용하려면 다음과 같이 runtime
구성 요소만 적용하면 됩니다.
apigeectl apply -f overrides-file.yaml -c runtime
여러 가상 호스트 추가
virtualhosts[]
속성은 배열이므로 둘 이상의 속성을 만들 수 있습니다. 각 가상 호스트에는 고유한 호스트 별칭 집합이 포함되어야 합니다. 두 호스트로 동일한 호스트 별칭을 공유할 수 없습니다. 예를 들어 새로운 가상 호스트 dev
는 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
업데이트를 적용하려면 다음과 같이 runtime
구성 요소만 적용하면 됩니다.
apigeectl apply -f overrides-file.yaml -c runtime
TLS 키 및 인증서
새 가상 호스트를 만들려면 TLS 키와 인증서를 제공해야 합니다. 키/인증서는 인그레스 게이트웨이와의 보안 통신을 제공하는 데 사용됩니다.
하이브리드 구성에 적합한 TLS 인증서/키 쌍을 생성하는 방법은 사용자가 결정합니다. 다음 주제는 다른 방법으로 TLS 사용자 인증 정보를 얻을 수 없는 경우 새 하이브리드 설치를 사용해 보거나 테스트하기 위한 샘플로만 제공됩니다.
- 승인된 TLS 인증서/키 쌍을 만들기 위한 샘플 단계 집합은 TLS 사용자 인증 정보 얻기를 참조하세요.
- 자체 서명된 인증서/키 쌍은 테스트 목적으로만 사용할 수 있습니다. 자체 서명 TLS 사용자 인증 정보 생성을 참조하세요.