가상 호스트 정보

Apigee Edge 문서입니다.
Apigee X 문서로 이동
정보

Edge에서는 라우터가 수신되는 모든 API 트래픽을 처리합니다. 즉, API 프록시에 대한 모든 HTTP 및 HTTPS 요청은 먼저 Edge 라우터에서 처리됩니다.

가상 호스트를 사용하면 서버에서 여러 도메인 이름을 호스팅할 수 있습니다. Edge의 경우 서버는 Edge 라우터에 해당합니다. 라우터에서 여러 가상 호스트를 정의하면 라우터가 여러 도메인 이름에 대한 API 요청을 처리할 수 있습니다.

Edge의 가상 호스트는 액세스 프로토콜 (HTTP 또는 HTTPS), 개방형 라우터 포트, 호스트 별칭을 정의합니다. 호스트 별칭은 일반적으로 라우터의 IP 주소에 매핑되는 DNS 도메인 이름입니다.

예를 들어 다음 이미지는 가상 호스트 정의가 두 개인 라우터를 보여줍니다.

첫 번째 가상 호스트는 도메인 domainName1에서 HTTPS 요청을 처리하고 두 번째 가상 호스트는 domainName2에서 HTTP 요청을 처리합니다.

API 프록시로의 요청에서 라우터는 수신되는 요청의 Host 헤더를 모든 가상 호스트에서 정의한 호스트 별칭 목록과 비교하여 어느 가상 호스트로 요청을 처리할지 결정합니다.

가상 호스트 정의 정보

가상 호스트에는 다음 정보가 포함됩니다.

  • 가상 호스트의 내부 이름입니다. 이 이름을 사용하여 API 프록시에서 가상 호스트를 참조하고 가상 호스트를 구성할 때 사용합니다.
  • 가상 호스트의 호스트 별칭입니다. 일반적으로 호스트 별칭은 라우터의 IP 주소에 매핑되는 DNS 도메인 이름입니다. API 프록시 요청의 Host 헤더에는 가상 호스트의 호스트 별칭이 포함되어야 합니다.
  • 라우터의 열린 포트.
  • TLS (HTTPS 액세스) 사용 설정 여부 (HTTP 액세스)

예를 들어 가상 호스트를 만들 때 다음 정보를 지정합니다.

  • 이름 = myvhost
  • 호스트 별칭 = apis.acme.com
  • 포트 = 443
  • TLS가 사용 설정됨

위의 가상 호스트 설정에 따라 API 프록시에 대한 요청은 다음 형식을 사용합니다.

https://apis.acme.com/{proxy-base-path}/{resource-path}

각 항목의 의미는 다음과 같습니다.

  • {proxy-base-path}는 API 프록시를 만들 때 정의되며 API 프록시마다 고유합니다. 예를 들면 다음과 같습니다.
    https://apis.acme.com/characters
  • {resource-path} API 프록시를 통해 액세스할 수 있는 리소스의 경로입니다. 예를 들면 다음과 같습니다.
    https://apis.acme.com/characters/coyote
    https://apis.acme.com/characters/roadrunner

Cloud용 Edge의 가상 호스트 정보

각 Edge 조직에는 환경 2개 (testprod), 각 환경의 가상 호스트 2개 (기본보안), 호스트 별칭별 DNS 레코드가 자동으로 포함됩니다.

각 Apigee 제공 가상 호스트의 호스트 별칭에는 다음 표와 같이 조직환경의 이름이 포함됩니다.

환경 가상 호스트 이름 호스트 별칭 포트 TLS 사용 설정됨
prod 기본값 {org-name}-prod.apigee.net 80 아니요
보안 {org-name}-prod.apigee.net 443
테스트 기본값 {org-name}-test.apigee.net 80 아니요
보안 {org-name}-test.apigee.net 443

예를 들어 prod 환경에서 'myorg'이라는 조직의 기본 도메인 이름은 'myorg-prod.apigee.net'입니다. 따라서 해당 조직의 API 프록시에 액세스하려면 다음 형식의 URL을 사용합니다.

http://myorg-prod.apigee.net/{proxy-base-path}/{resource-path}
https://myorg-prod.apigee.net/{proxy-base-path}/{resource-path}

Apigee 유료 요금제: 'apigee.net'이 포함된 도메인 이름은 고객에게 노출하고 싶지 않을 수 있습니다. DNS 항목과 CNAME 레코드를 사용하여 Edge에서 도메인 이름을 조직에 매핑할 수 있습니다. 또한 호스트 별칭을 해당 도메인 이름으로 설정하여 가상 호스트를 만들어야 합니다. 이렇게 하면 개발자가 회사 고유의 도메인을 통해 API에 액세스할 수 있습니다.

다음은 Edge의 커스텀 도메인 예입니다.

https://apis.acme.com/{proxy-base-path}/{resource-path}

프라이빗 클라우드용 Edge의 가상 호스트 정보

프라이빗 클라우드용 Apigee Edge를 설치하면 기본 조직, 환경 또는 가상 호스트가 자동으로 생성되지 않습니다. Edge 설치 프로세스를 완료한 후 일반적으로 '온보딩' 프로세스를 통해 조직, 환경, 가상 호스트를 만듭니다.

온보딩을 수행하려면 에지 관리 서버 노드에서 다음 명령어를 실행합니다.

/opt/apigee/apigee-service/bin/apigee-service apigee-provision setup-org -f configFile

여기서 configFile에는 사용자, 조직, 환경, 가상 호스트를 만드는 데 필요한 정보가 포함됩니다.

예를 들어 다음을 만듭니다.

  • 조직 관리자로 기능하도록 선택한 사용자
  • 이름이 example인 조직
  • 조직의 prod라는 환경
  • 포트 9001에서 HTTP 액세스를 허용하는 default라는 환경의 가상 호스트
  • 라우터에 액세스하는 데 사용되는 DNS 이름의 호스트 별칭 또는 라우터의 IP 주소와 가상 호스트의 포트(IP:9001 형식)입니다.

나중에 온프레미스 버전의 Edge에 원하는 수의 조직, 환경, 가상 호스트를 추가할 수 있습니다. 자세한 내용은 다음을 참고하세요.

에지 라우터에서 가상 호스트가 열립니다. 따라서 가상 호스트에 지정하는 포트가 라우터에 열려 있는지 확인해야 합니다. 아래 형식의 명령어를 사용하여 포트를 열 수 있습니다.

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9001 -j ACCEPT --verbose

명령어를 실행하면 다음과 같은 형식의 URL을 사용하여 API에 액세스할 수 있습니다.

http://<router-ip>:9001/{proxy-base-path}/{resource-path}

일반적으로 IP 주소와 포트 번호를 사용하여 고객에게 API를 게시하지 않습니다. 대신 라우터 및 포트에 대한 DNS 항목을 정의합니다. 예를 들면 다음과 같습니다.

http://myAPI.myCo.com/{proxy-base-path}/{resource-path}

DNS 항목을 정의할 때 DNS 항목의 도메인 이름과 일치하는 호스트 별칭이 있는 가상 호스트도 만들어야 합니다. 위의 예시에서는 가상 호스트를 만들 때 myAPI.myCo.com의 호스트 별칭을 지정합니다.

호스트 별칭 및 DNS 이름 정보

가상 호스트에 설정하는 속성 중 하나는 호스트 별칭입니다. 호스트 별칭은 일반적으로 가상 호스트의 DNS 이름입니다. 호스트 별칭을 설정하는 방법은 Edge 설치 유형(클라우드 또는 프라이빗 클라우드)에 따라 다릅니다.

Cloud용 Edge의 호스트 별칭 및 DNS 이름

Cloud용 Edge에서 Edge 조직을 처음 만들면 Apigee는 두 가지 환경 (testprod), 각 환경의 두 가지 가상 호스트 (기본보안), 각 가상 호스트의 DNS 레코드를 자동으로 만듭니다.

가상 호스트의 호스트 별칭에는 조직 및 환경의 이름이 포함됩니다. 따라서 가상 호스트를 통한 요청의 형식은 다음과 같습니다.

  • http://{org-name}-prod.apigee.net/{proxy-base-path}/{resource-path}
  • https://{org-name}-prod.apigee.net/{proxy-base-path}/{resource-path}
  • http://{org-name}-test.apigee.net/{proxy-base-path}/{resource-path}
  • https://{org-name}-test.apigee.net/{proxy-base-path}/{resource-path}

일반적으로 기본 apigee.net 도메인을 사용하는 대신 도메인 이름을 사용하는 가상 호스트를 만드는 것이 좋습니다. 이렇게 하려면 먼저 자체 DNS 항목과 CNAME 레코드를 만들어야 합니다.

다음 그림은 Edge에서 API 요청을 처리하는 일반적인 구성을 보여줍니다.

이 예에서는 다음과 같이 정의됩니다.

  • api.acme.com은 원하는 도메인 이름입니다.
  • api.acme.comacme-prod.apigee.net으로 가리키도록 DNS 항목과 CNAME 레코드를 정의합니다.
  • 요청에는 라우터가 요청을 처리할 가상 호스트를 결정하는 데 사용하는 Host 헤더가 포함됩니다.

이 예에서는 가상 호스트 정의에 다음 정보를 지정합니다.

  • 이름 = myvhost
  • 호스트 별칭 = apis.acme.com
  • 포트 = 443
  • TLS 액세스 사용 설정

자세한 내용은 Cloud용 가상 호스트 구성을 참고하세요.

프라이빗 클라우드용 Edge의 호스트 별칭 및 DNS 이름

Cloud용 Edge와 마찬가지로 호스트 별칭에 자체 도메인 이름을 사용하는 가상 호스트를 만듭니다. 그런 다음 자체 DNS 항목과 CNAME 레코드를 만들어 이러한 가상 호스트에 액세스합니다.

Cloud와 프라이빗 Cloud의 차이점 중 하나는 Cloud에서는 Apigee가 다음과 같은 형식으로 조직의 DNS 이름을 자동으로 생성한다는 점입니다.

  • name=default: http://{org-name}-{env-name}.apigee.net(라우터 포트 80)
  • name=secure: https://{org-name}-{env-name}.apigee.net(라우터 포트 443)

프라이빗 클라우드용 Edge에서 라우터의 IP 주소 및 포트에 대한 DNS 항목을 만들어야 합니다.

예를 들어 가상 호스트 정의에 다음 정보를 지정합니다.

  • 이름 = myvhost
  • 호스트 별칭 = apis.acme.com
  • 포트 = 9001
  • TLS 액세스 사용 설정

다음 그림은 Edge에서 API 요청을 처리하는 일반적인 구성을 보여줍니다.

이 예에서는 다음과 같이 정의됩니다.

  • api.acme.com은 원하는 도메인 이름입니다.
  • DNS 항목과 CNAME 레코드를 정의하여 api.acme.com을 라우터의 IP 주소 및 포트로 가리킵니다.
  • 요청에는 라우터가 요청을 처리하는 가상 호스트를 결정하는 데 사용하는 Host 헤더가 포함되어 있습니다.

자세한 내용은 프라이빗 클라우드의 가상 호스트 구성을 참조하세요.

호스트 별칭 및 와일드 카드

호스트 별칭에 '*' 와일드 카드 문자를 포함할 수 있습니다. '*' 와일드 카드 문자는 호스트 별칭의 시작 부분 (첫 번째 '.' 앞)에만 있을 수 있으며 다른 문자와 혼합할 수 없습니다.

다음은 와일드 카드를 사용하는 유효한 호스트 별칭의 예입니다.

*.example.com

다음 예시는 유효하지 않습니다.

  www.*.example.com
  w*.example.com

가상 호스트 별칭에 와일드 카드를 사용하면 API 프록시가 alpha.example.com, beta.example.com 또는 live.example.com과 같은 여러 하위 도메인으로 주소가 지정된 호출을 처리할 수 있습니다. 또한 와일드 카드 별칭을 사용하면 환경당 가상 호스트 수를 줄여 제품 한도를 준수할 수 있습니다. 와일드 카드가 있는 가상 호스트는 하나의 가상 호스트로만 계산되기 때문입니다.

가상 호스트의 TLS 인증서에는 인증서의 CN 이름에 일치하는 와일드 카드가 있어야 합니다. 예를 들면 *.example.com입니다.

가상 호스트 속성 정보

Edge에서 가상 호스트는 XML 객체로 나타납니다. 예를 들어 다음 XML 객체는 가상 호스트를 정의합니다.

<VirtualHost name="vhostName">
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <!-- Private Cloud only -->
        <Interface>interfaceName</Interface>
    <Port>portNumber</Port>
    <BaseURL>http://myCo.com<</BaseUrl>
    <OCSPStapling>off</OCSPStapling>
    <RetryOptions/>
   <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
    </SSLInfo>
    <Properties>
        <Property name="proxy_read_timeout">timeout</Property>
        <Property name="keepalive_timeout">timeout</Property>
        <Property name="proxy_request_buffering">onOff</Property>
        <Property name="proxy_buffering">onOff</Property>
        <Property name="ssl_protocols">protocolList</Property>
        <Property name="ssl_ciphers">cipherList</Property>
    </Properties>
</VirtualHost>

설정할 수 있는 속성 목록은 클라우드에 Edge를 사용하는지 아니면 프라이빗 클라우드에 Edge를 사용하는지에 따라 달라집니다. 프라이빗 클라우드용 Edge를 사용하는 경우 사용 가능한 속성 목록도 Edge 버전에 따라 다릅니다. 가상 호스트의 모든 속성에 관한 자세한 설명은 가상 호스트 속성 참조를 참고하세요.

특정 버전의 Edge에 맞는 가상 호스트를 만드는 방법에 관한 자세한 내용은 다음을 참고하세요.