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

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

온프레미스 설치에서는 가상 호스트를 완벽하게 제어할 수 있습니다. TLS 사용 여부와 관계없이 모든 환경에서 모든 조직의 가상 호스트를 만들 수 있습니다.

이 문서에서는 간단한 가상 호스트를 만드는 방법을 설명합니다. 즉, TLS를 지원하지 않습니다. TLS를 지원하는 가상 호스트를 만드는 예시를 포함한 더 많은 예시는 Private Cloud API에 대한 TLS 액세스 구성을 참조하세요.

자세히 알아보기:

호스트 별칭 정보

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

Edge Router는 요청을 처리하는 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용 Edge 4.16.01 이상용 가상 호스트 포트 정보

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

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

가상 호스트 만들기

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

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

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

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

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

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

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

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

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

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

  5. 새 가상 호스트를 정의합니다. 기본 URL 필드에는 프로토콜을 포함해야 합니다. 즉, 필드 값에 'http://' 또는 'https://'를 붙여야 합니다.

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

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

API로 가상 호스트 만들기

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

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

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

그런 다음 요청을 실행하여 이 가상 호스트를 통해 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를 사용 설정하거나 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. 모든 라우터에 이 작업을 반복합니다.