设置虚拟主机

适用于私有云的 Edge v. 4.17.09

Edge 上的虚拟主机定义 API 代理公开的网域和 Edge Router 端口,以及应用用于访问 API 代理的网址。虚拟主机还定义了是使用 HTTP 协议还是使用加密 HTTPS 协议访问 API 代理。

在 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 Router 会将传入请求的 Host 标头与可用主机别名列表进行比较,以确定处理请求的 API 代理。通过虚拟主机发出请求时,请指定与虚拟主机的主机别名匹配的域名,或者指定路由器的 IP 地址和包含主机别名的主机标头。

例如,如果您在端口 9001 上创建了一个主机别名为 myapis.apigee.net 的虚拟主机,那么通过该虚拟主机向 API 发出的 c网址 请求可以使用以下任一形式:

  • 如果您有 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 标头中传递主机别名。

    注意:在 c网址 命令、大多数浏览器和许多其他实用程序中,系统会自动将 Host 标头附加到请求中,所以您实际上可以使用以下形式的 c网址 命令:

    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 界面配合得很好。

如果您有多个路由器,请为每个路由器添加主机别名,指定每个路由器的 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}