가상 호스트 정보

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

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

가상 호스트를 사용하면 서버에 여러 도메인 이름을 호스팅할 수 있습니다. 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

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

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

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

환경 가상 호스트 이름 호스트 별칭 포트 TLS 사용 설정됨
prod 기본값 {org-name}-prod.apigee.net 80 No
보안 {org-name}-prod.apigee.net 443 지원됨
테스트 기본값 {org-name}-test.apigee.net 80 No
보안 {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의 가상 호스트 정보

Private Cloud용 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 설치 유형(클라우드 또는 프라이빗 클라우드)에 따라 다릅니다.

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

클라우드용 Edge에서 처음 Edge 조직을 만들면 Apigee에서 자동으로 환경 2개 (testprod), 각 환경의 가상 호스트 2개 (기본보안), 각 가상 호스트의 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 액세스 사용 설정

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

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

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

클라우드와 프라이빗 클라우드의 차이점 중 하나는 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은 원하는 도메인 이름입니다.
  • api.acme.com이 라우터의 IP 주소와 포트를 가리키도록 DNS 항목과 CNAME 레코드를 정의합니다.
  • 요청에는 라우터가 요청을 처리하는 가상 호스트를 확인하는 데 사용하는 Host 헤더가 포함됩니다.

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

호스트 별칭 및 와일드 카드

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

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

*.example.com

다음은 유효하지 않은 예입니다.

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

가상 호스트 별칭에 와일드 카드를 사용하면 API 프록시가 alpha.example.com, beta.example.com, live.example.com 등 여러 하위 도메인으로 전송되는 호출을 처리할 수 있습니다. 또한 와일드 카드 별칭을 사용하면 와일드 카드가 있는 가상 호스트는 가상 호스트 1개로 간주되므로 환경당 사용하는 가상 호스트 수를 줄여 제품 한도를 넘지 않도록 유지할 수 있습니다.

가상 호스트의 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를 위한 가상 호스트 만들기에 대한 자세한 내용은 다음을 참조하세요.