가상 호스트 설정

Private Cloud용 Edge v. 4.17.09

Edge의 가상 호스트는 API 프록시가 노출되는 도메인 및 Edge Router 포트를 정의하며, 더 나아가 앱이 API 프록시에 액세스하는 데 사용하는 URL을 정의합니다. 또한 가상 호스트는 API 프록시에 액세스하는 데 HTTP 프로토콜을 사용할 것인지 또는 암호화된 HTTPS 프로토콜을 사용할 것인지 정의합니다.

Edge 온보딩 프로세스에서 조직, 환경, 가상 호스트를 만들어야 합니다. Edge에서는 신규 사용자가 이 프로세스를 더 쉽게 수행할 수 있도록 setup-org 명령어를 제공합니다.

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

  • API 프록시에서 가상 호스트를 참조하는 데 사용하는 가상 호스트의 이름입니다.
  • 가상 호스트용 라우터에 있는 포트입니다. 일반적으로 이러한 포트는 9001에서 시작하여 새 가상 호스트마다 1씩 증가합니다.
  • 가상 호스트의 호스트 별칭입니다. 일반적으로 가상 호스트의 DNS 이름입니다.

예를 들어 setup-org 명령어에 전달된 구성 파일에서 이 정보를 다음과 같이 지정할 수 있습니다.

# Specify virtual host information.
VHOST_PORT=9001
VHOST_NAME=default

# If you have a DNS entry for the virtual host.
VHOST_ALIAS=myapis.apigee.net

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

예를 들어 포트 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 명령어, 대부분의 브라우저, 기타 여러 유틸리티는 요청의 일부로 Host 헤더를 도메인과 함께 자동으로 추가하므로 실제로 다음 형식의 cURL 명령어를 사용할 수 있습니다.

    curl http://<routerIP>:9001/{proxy-base-path}/{resource-path}

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

DNS 항목이 없는 경우 한 가지 옵션은 호스트 별칭을 라우터의 IP 주소와 가상 호스트의 포트로 설정하는 것입니다(예: <routerIP>:port). 예를 들면 다음과 같습니다.

VHOST_ALIAS=192.168.1.31:9001

그런 다음 아래 형식으로 curl 명령어를 만듭니다.

curl http://<routerIP>:9001/{proxy-base-path}/{resource-path} 

이 옵션은 Edge UI와 잘 작동하므로 권장됩니다.

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

# Specify the IP and port of each router as a space-separated list enclosed in quotes:
# VHOST_ALIAS="192.168.1.31:9001 192.168.1.32:9001"

또는 호스트 별칭을 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}