가상 호스트 설정

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

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

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

  • API 프록시에서 가상 호스트를 참조하는 데 사용하는 가상 호스트의 이름입니다.
  • 가상 호스트 라우터의 포트 일반적으로 이러한 포트는 9001에서 시작하여 새 가상 호스트마다 하나씩 증가합니다.
  • 가상 호스트의 호스트 별칭입니다. 일반적으로 가상 호스트의 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 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 헤더에 호스트 별칭을 전달합니다.

가상 호스트에 대한 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