为私有云配置虚拟主机

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

在本地安装中,您可以完全控制虚拟主机。您可以创建 任何组织、任何环境中的虚拟主机(无论是否使用 TLS)。

本文档介绍了如何创建简单的虚拟主机。也就是说, 支持传输层安全协议 (TLS)。如需查看更多示例,包括有关如何创建支持 TLS 的虚拟主机的示例, 请参阅配置 TLS 适用于 Private Cloud 的 API 的访问权限

了解详情

主机别名简介

<ph type="x-smartling-placeholder">

创建虚拟主机时,您必须指定虚拟主机的主机别名。 通常,这是虚拟主机的 DNS 名称。

边缘路由器将传入请求的 Host 标头与 可用的主机别名列表来确定处理请求的 API 代理。 通过虚拟主机发出请求时,请指定与主机匹配的域名 虚拟主机的别名,或指定路由器的 IP 地址和包含主机别名的 Host 标头。

例如,如果您创建了一个虚拟主机,其主机别名为 端口 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 标头。

    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.然后,您必须在每个请求中传递 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

关于 Edge 上的虚拟主机端口 适用于 Private Cloud 4.16.01 及更高版本

创建虚拟主机时,您需要指定虚拟主机使用的路由器端口。对于 例如端口 9001

对于 Apigee for Private Cloud 版本 4.16.01 及更高版本,默认情况下,路由器以 用户“apigee”而该端口无权访问特权端口,通常为 1024 及以下端口。如果 创建将路由器绑定到受保护的端口的虚拟主机 将路由器配置为以有权访问这些端口的用户身份运行。如需了解详情,请参阅设置虚拟主机

创建虚拟主机

本部分介绍如何为适用于私有云的 Apigee Edge 创建虚拟主机。请注意,要创建新的 您必须是组织管理员。

您可以使用 API 或 Edge 界面为适用于私有云的 Apigee Edge 创建虚拟主机。这些是 具体说明。

使用浏览器创建虚拟主机

本部分介绍如何使用浏览器创建虚拟主机(仅限 Edge UI)。

如需在 Edge 界面中创建新的虚拟主机,请执行以下操作

  1. 登录 Edge 管理界面。
  2. 选择管理 >虚拟主机中所述。
  3. 从下拉列表中选择环境。

    Edge 会显示该环境的虚拟主机列表。

  4. 要创建新的虚拟主机,请选择 + 虚拟主机

    Edge 会显示创建虚拟主机表单。

    您也可以点击现有虚拟主机的名称以进行修改。

  5. 定义新的虚拟主机。请注意,基准网址字段必须包含 协议(即,在字段的值前面加上“http://”或“https://”前缀)。

    另请注意:

    • 您可以创建的虚拟主机数量没有限制
    • TLS 是可选的,版本可以是 1.0、1.1 或 1.2
    • 虚拟主机的端口可配置
  6. 点击创建按钮以保存新的虚拟主机。

使用 API 创建虚拟主机

要使用 API 创建虚拟主机,请创建一个用于定义 虚拟主机。例如,以下 XML 对象定义了一个使用 HTTP 协议的 协议:

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

请注意,该虚拟主机包含一个 name 属性。您可以使用 name 属性来配置 API 代理以使用虚拟主机。

然后,您可以向以下位置发出请求,通过此虚拟主机访问 API 代理:

http://routerIP:port/proxy-base-path/resource-path
https://routerIP:port/proxy-base-path/resource-path

其中:

  • httphttps:如果虚拟主机已配置为 支持 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. 使用 创建 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. 使用 <ph type="x-smartling-placeholder"></ph> 更新 Virtual Host 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 版本 4.16.01 和 4.16.05,如果您修改 现有的虚拟主机,并且您启用 TLS 或停用 TLS 而不更改端口 数字,然后: <ph type="x-smartling-placeholder">
      </ph>
    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. 对所有路由器重复上述步骤。