设置虚拟主机

适用于私有云的 Edge v. 4.17.01

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

在 Edge 新手入门流程中,您必须创建组织、环境 虚拟主机。Edge 提供了setup-org命令 让新用户更轻松地完成升级流程

创建虚拟主机时,您必须指定以下信息:

  • 您在 API 中用于引用它的虚拟主机的名称 代理。
  • 虚拟主机上的端口。通常,这些端口 从 9001 开始,每个新虚拟主机递增 1。
  • 虚拟主机的主机别名。通常是 虚拟主机。

边缘路由器会比较主机标头的 列出传入的请求,以确定 API 代理, 处理请求。通过虚拟主机发出请求时,请指定域名 与虚拟主机的主机别名匹配的地址,或者指定路由器的 IP 地址, Host 标头,其中包含 主机别名。

例如,如果您在端口上创建了一个主机别名为 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 地址 并在主机标头中传递主机别名。

    注意:curl 命令、大多数浏览器和许多其他实用程序会自动 在请求过程中附加主机标头和域名,这样您实际上可以使用 curl 命令,格式如下


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

没有 DNS 时的选项 虚拟主机的

如果没有 DNS 条目,您可以选择将主机别名设置为 虚拟主机的路由器和端口,格式为 <routerIP>:port。例如:

192.168.1.31:9001

然后,执行如下形式的 curl 命令:

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

首选此选项,因为它适合 Edge 界面。

如果您有多个路由器,请为每个路由器添加一个主机别名,并指定 每个路由器和虚拟主机的端口

或者,您可以将主机别名设置为一个值,例如 名为 temp.hostalias.com。然后,您必须将主机标头传递到每个 请求:

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}

在虚拟主机中使用受保护的端口

如果您想创建将路由器绑定到受保护的端口(例如端口)的虚拟主机,请执行以下操作: 则您必须配置路由器,使其以有权访问 这些端口默认情况下,路由器以用户“apigee”的身份运行它无权访问 特权端口

要以其他用户身份运行路由器,请执行以下操作:

  1. 以根用户身份创建文件 /opt/apigee/etc/edge-router.d/RUN_USER.sh
  2. 将以下条目添加到该文件中:
    RUN_USER=root
    如果您不希望以根用户身份运行路由器,请指定有权访问该端口的用户。
  3. 保存文件。
  4. 如果您指定了除 root 以外的用户,请将文件的所有者更改为该用户:
    &gt; chown USER:USER /opt/apigee/etc/edge-router.d/RUN_USER.sh
  5. 重启路由器:
    &gt; /opt/apigee/apigee-service/bin/apigee-service edge-router restart