프라이빗 클라우드의 가상 호스트 구성

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

온프레미스 설치에서는 가상 호스트를 완벽하게 제어할 수 있습니다. TLS를 사용하거나 사용하지 않고 모든 환경에서 모든 조직의 가상 호스트를 만들 수 있습니다.

이 문서에서는 간단한 가상 호스트를 만드는 방법을 설명합니다. 즉, TLS를 지원하지 않는 브라우저입니다. TLS를 지원하는 가상 호스트를 만드는 예를 비롯한 더 많은 예시는 프라이빗 클라우드용 API에 대한 TLS 액세스 구성을 참고하세요.

자세히 알아보기:

호스트 별칭 정보

가상 호스트를 만들 때 가상 호스트의 호스트 별칭을 지정해야 합니다. 일반적으로 가상 호스트의 DNS 이름입니다.

Edge 라우터는 요청을 처리하는 API 프록시를 결정하는 과정에서 수신 요청의 Host 헤더를 사용 가능한 호스트 별칭 목록과 비교합니다. 가상 호스트를 통해 요청할 때 가상 호스트의 호스트 별칭과 일치하는 도메인 이름을 지정하거나 라우터의 IP 주소와 호스트 별칭이 포함된 Host 헤더를 지정합니다.

예를 들어 포트 9001에서 호스트 별칭이 myapis.apigee.net인 가상 호스트를 만든 경우 해당 가상 호스트를 통한 API에 대한 cURL 요청은 다음 형식 중 하나를 사용할 수 있습니다.

  • myapis.apigee.net의 DNS 항목이 있는 경우:

    curl http://myapis.apigee.net:9001/proxy-base-path/resource-path
  • myapis.apigee.net에 대한 DNS 항목이 없는 경우:

    curl http://routerIP:9001/proxy-base-path/resource-path -H 'host:myapis.apigee.net'

    이 양식에서는 라우터의 IP 주소를 지정하고 Host 헤더에 호스트 별칭을 전달합니다.

    curl http://routerIP:9001/proxy-base-path/resource-path

가상 호스트에 대한 DNS 항목이 없는 경우의 옵션

DNS 항목이 없는 경우 호스트 별칭을 라우터의 IP 주소 및 가상 호스트의 포트(routerIP:port)로 설정하는 방법이 있습니다. 예를 들면 다음과 같습니다.

192.168.1.31:9001

아래 형식으로 curl 명령어를 실행하면 다음과 같습니다.

curl http://routerIP:9001/proxy-base-path/resource-path

이 옵션은 Edge UI에서 잘 작동하므로 선호됩니다.

라우터가 여러 개인 경우 각 라우터의 IP 주소와 가상 호스트의 포트를 지정하여 각 라우터의 호스트 별칭을 추가합니다.

또는 호스트 별칭을 temp.hostalias.com과 같은 값으로 설정할 수 있습니다. 그런 다음 모든 요청에서 Host 헤더를 전달해야 합니다.

curl -v http://routerIP:9001/proxy-base-path/resource-path -H 'Host: temp.hostalias.com'

또는 /etc/hosts 파일에 호스트 별칭을 추가합니다. 예를 들어 /etc/hosts에 다음 줄을 추가합니다.

192.168.1.31 temp.hostalias.com

그런 다음 DNS 항목이 있는 것처럼 요청을 수행할 수 있습니다.

curl -v http://myapis.apigee.net:9001/proxy-base-path/resource-path

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

가상 호스트를 만들 때 가상 호스트에서 사용하는 라우터 포트를 지정합니다. 예를 들어 포트 9001입니다.

프라이빗 클라우드용 Apigee 4.16.01 및 이후 버전의 경우 기본적으로 라우터는 권한이 있는 포트(일반적으로 1024 이하의 포트)에 액세스할 수 없는 사용자 'apigee'로 실행됩니다. 라우터를 보호된 포트에 바인딩하는 가상 호스트를 만들려면 이러한 포트에 액세스할 수 있는 사용자로 실행되도록 라우터를 구성해야 합니다. 자세한 내용은 가상 호스트 설정을 참고하세요.

가상 호스트 만들기

이 섹션에서는 Private Cloud용 Apigee Edge의 가상 호스트를 만드는 방법을 설명합니다. 새 가상 호스트를 만들려면 조직 관리자여야 합니다.

API 또는 Edge UI를 사용하여 Apigee Edge for Private Cloud의 가상 호스트를 만들 수 있습니다. 다음 섹션에서 설명합니다.

브라우저를 사용하여 가상 호스트 만들기

이 섹션에서는 브라우저를 사용하여 가상 호스트를 만드는 방법을 설명합니다 (Edge UI만 해당).

Edge UI에서 새 가상 호스트를 만들려면 다음 안내를 따르세요.

  1. Edge 관리 UI에 로그인합니다.
  2. 관리 > 가상 호스트를 선택합니다.
  3. 드롭다운 목록에서 환경을 선택합니다.

    Edge에 해당 환경의 가상 호스트 목록이 표시됩니다.

  4. 새 가상 호스트를 만들려면 + 가상 호스트를 선택합니다.

    Edge에 가상 호스트 만들기 양식이 표시됩니다.

    기존 가상 호스트의 이름을 클릭하여 수정할 수도 있습니다.

  5. 새 가상 호스트를 정의합니다. Base URL 필드에는 프로토콜이 포함되어야 합니다. 즉, 필드 값 앞에 'http://' 또는 'https://'를 추가하세요.

    또한 다음 사항에 유의하세요.

    • 만들 수 있는 가상 호스트 수에는 제한이 없습니다.
    • TLS는 선택사항이며 버전 1.0, 1.1 또는 1.2일 수 있습니다.
    • 가상 호스트의 포트 구성 가능
  6. 만들기 버튼을 클릭하여 새 가상 호스트를 저장합니다.

API로 가상 호스트 만들기

API로 가상 호스트를 만들려면 가상 호스트를 정의하는 XML 객체를 만듭니다. 예를 들어 다음 XML 객체는 HTTP 프로토콜을 사용하는 가상 호스트를 정의합니다.

<VirtualHost name="myVHost">
   <HostAliases>
     <HostAlias>DNS_name_or_IP:port</HostAlias>
   </HostAliases>
   <Interfaces/>
   <Port>9005</Port>
</VirtualHost>

가상 호스트에 name 속성이 포함되어 있습니다. name 속성의 값을 사용하여 가상 호스트를 사용하도록 API 프록시를 구성합니다.

그런 다음 다음을 요청하여 이 가상 호스트를 통해 API 프록시에 액세스할 수 있습니다.

http://routerIP:port/proxy-base-path/resource-path
https://routerIP:port/proxy-base-path/resource-path

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

  • http 또는 https: 가상 호스트가 TLS를 지원하도록 구성된 경우 HTTPS를 사용합니다. 가상 호스트가 TLS를 지원하지 않는 경우 HTTP를 사용합니다.
  • routerIP:port는 가상 호스트의 IP 주소 및 포트 번호입니다.
  • proxy-base-pathresource-path는 API 프록시를 만들 때 정의됩니다.

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

http://api.myCompany.com/proxy-base-path/resource-path
https://api.myCompany.com/proxy-base-path/resource-path

DNS 항목을 정의하는 경우 DNS 항목의 도메인 이름과 일치하는 가상 호스트의 호스트 별칭을 만들어야 합니다. 호스트 별칭은 클라이언트가 Host 헤더에 전달하는 문자열과 일치해야 합니다. 위 예에서는 호스트 별칭을 api.myCompany.com로 지정합니다.

<VirtualHost name="myVHost">
    <HostAliases>
        <HostAlias>api.myCompany.com</HostAlias>
    </HostAliases>
    <Interfaces/>
    <Port>9005</Port>
</VirtualHost>

HTTP 프로토콜을 사용하는 가상 호스트를 만들려면 다음 단계를 따르세요.

  1. Create a Virtual Host API를 사용하여 가상 호스트를 만듭니다. 여기서 ms-IP는 관리 서버 노드의 IP 주소 또는 도메인 이름입니다.
    $ curl -X POST -H "Content-Type:application/xml" \
    http://ms-IP:8080/v1/o/org_name/environments/env_name/virtualhosts \
    -d '<VirtualHost name="newVHost">
        <HostAliases>
          <HostAlias>api.myCompany.com</HostAlias>
        </HostAliases>
        <Interfaces/>
        <Port>9005</Port>
      </VirtualHost>' \
    -u sysAdminEmail:password
    
  2. 호스트 별칭과 일치하는 가상 호스트의 DNS 레코드를 만듭니다.
  3. 기존 API 프록시가 있는 경우 프록시 엔드포인트의 <HTTPConnection> 요소에 가상 호스트를 추가합니다. 가상 호스트는 모든 새 API 프록시에 자동으로 추가됩니다. 가상 호스트를 사용하도록 API 프록시 구성을 참고하세요.

가상 호스트 수정

가상 호스트를 수정하려면 다음을 수행합니다.

  1. 가상 호스트 업데이트 API를 사용하여 가상 호스트를 업데이트합니다. 여기서 <ms-IP>는 관리 서버 노드의 IP 주소 또는 도메인 이름입니다. 요청 본문에는 변경하려는 요소뿐만 아니라 가상 호스트의 전체 정의를 지정해야 합니다. 이 예에서는 가상 호스트의 포트 번호를 9008에서 9009로 변경합니다.

    curl -X PUT -H "Content-Type:application/xml" \
      http://ms-IP:8080/v1/o/org_name/environments/env_name/virtualhosts/vhost_name \
      -d '<VirtualHost name="newVHost">
        <HostAliases>
          <HostAlias>api.myCompany.com</HostAlias>
        </HostAliases>
        <Interfaces/>
        <Port>9009</Port>
      </VirtualHost>' \
      -u email:password
  2. Edge for Private Cloud 버전 4.16.01 및 4.16.05만 해당: 기존 가상 호스트를 수정하고 포트 번호를 변경하지 않고 TLS를 사용 설정하거나 사용 중지하는 경우 다음과 같은 문제가 발생합니다.
    1. 라우터를 중지합니다.

      /opt/apigee/apigee-service/bin/apigee-service edge-router stop
    2. /opt/nginx/conf.d의 파일을 삭제합니다.

      rm -f /opt/nginx/conf.d/*
    3. 라우터를 시작합니다.

      /opt/apigee/apigee-service/bin/apigee-service edge-router start
    4. 모든 라우터에 이 작업을 반복합니다.