가상 호스트 정보

Apigee Edge 문서입니다.
Go to the Apigee X documentation.
info

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 액세스) 여부입니다.

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

  • name = myvhost
  • host alias = apis.acme.com
  • port = 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 조직에는 두 가지 환경 (testprod), 각 환경의 가상 호스트 두 개 (기본값보안), 각 호스트 별칭의 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}

Private Cloud용 Edge의 가상 호스트 정보

Apigee Edge for Private Cloud를 설치할 때 기본 조직, 환경 또는 가상 호스트가 생성되지 않습니다. 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의 온프레미스 버전에 원하는 수의 조직, 환경, 가상 호스트를 추가할 수 있습니다. 자세한 내용은 다음을 참고하세요.

가상 호스트는 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 설치 유형(클라우드 또는 Private Cloud)에 따라 다릅니다.

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 은 원하는 도메인 이름입니다.
  • DNS 항목과 CNAME 레코드를 정의하여 api.acme.comacme-prod.apigee.net 으로 지정합니다.
  • 요청에는 라우터가 요청을 처리하는 가상 호스트를 결정하는 데 사용하는 Host 헤더가 포함되어 있습니다.

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

  • name = myvhost
  • host alias = apis.acme.com
  • port = 443
  • TLS 액세스 사용 설정

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

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

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

클라우드와 Private Cloud의 차이점 중 하나는 클라우드에서 Apigee 가 다음과 같은 형식으로 조직의 DNS 이름을 자동으로 만들었다는 것입니다.

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

Private Cloud용 Edge에서는 라우터의 IP 주소와 포트 에 대한 DNS 항목을 만들어야 합니다.

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

  • name = myvhost
  • host alias = apis.acme.com
  • port = 9001
  • TLS 액세스 사용 설정

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

이 예시에서는 다음을 정의합니다.

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

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

호스트 별칭 및 와일드 카드

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

다음은 와일드 카드를 사용하는 올바른 호스트 별칭의 예시입니다.

*.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>

설정할 수 있는 속성 목록은 Cloud용 Edge를 사용하는지 아니면 Private Cloud용 Edge를 사용하는지에 따라 다릅니다. Private Cloud용 Edge를 사용하는 경우 사용 가능한 속성 목록은 Edge 버전에 따라 다릅니다. 가상 호스트의 모든 속성에 대한 전체 설명은 가상 호스트 속성 참조를 확인하세요.

특정 버전의 Edge에 대한 가상 호스트 만들기에 대한 자세한 내용은 다음을 참고하세요.