虚拟主机属性参考文档

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

虚拟主机表示法

您用来定义虚拟主机的 XML 对象基于您的 Edge 版本:Cloud 或私有云。

如果您是私有云客户,则必须确保针对 使用 Edge 版本。

云和私有云 4.17.01 及更高版本

<VirtualHost name="vhostName">
    <Port>portNumber</Port>
    <BaseUrl>http://myCo.com</BaseUrl>
    <OCSPStapling>offOn</OCSPStapling>
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <!-- Private Cloud only -->
        <Interface>interfaceName</Interface>
    </Interfaces>
    <RetryOptions>
        <RetryOption>option</RetryOption>
    </RetryOptions>
    <ListenOptions>
        <ListenOption>option</ListenOption>
    </ListenOptions>
    <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
    </SSLInfo>
    <!-- UseBuiltInFreeTrialCert is for Edge Cloud only -->
    <UseBuiltInFreeTrialCert>trueFalse</UseBuiltInFreeTrialCert>
    <PropagateTLSInformation>
        <!-- PropagateTLSInformation is Alpha in the Cloud only -->
        <ConnectionProperties>trueFalse</ConnectionProperties>
        <ClientProperties>trueFalse</ClientProperties>
    </PropagateTLSInformation>
    <Properties>
        <Property name="proxy_read_timeout">timeout</Property>
        <Property name="keepalive_timeout">timeout</Property>
        <Property name="proxy_request_buffering">onOff</Property>
        <Property name="proxy_buffering">onOff</Property>
        <!-- ssl_protocols is Private Cloud only -->
        <Property name="ssl_protocols">protocolList</Property>
        <Property name="ssl_ciphers">cipherList</Property>
    </Properties>
</VirtualHost>

Private Cloud 4.16.01 至 4.16.09

<VirtualHost name="vhostName">
    <Port>portNumber</Port>
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <Interface>interfaceName</Interface>
    </Interfaces>
    <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
    </SSLInfo>
</VirtualHost>

Private Cloud 4.15.07 和 更早

<VirtualHost name="vhostName">
    <Port>portNumber</Port>
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <Interface>interfaceName</Interface>
    </Interfaces>
    <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>keystore</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>truststore</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
        <Ciphers>
             <Cipher>cipher</Cipher>
             <Cipher>cipher</Cipher>
         </Ciphers>
         <Protocols>
             <Protocol>protocol</Protocol>
             <Protocol>protocol</Protocol>
         </Protocols>
    </SSLInfo>
</VirtualHost>

虚拟主机配置属性

下表列出了用于配置虚拟主机的属性:

属性 说明 默认 必填
VirtualHost

指定虚拟主机的名称。您可以使用该名称来引用虚拟主机, 需要注意的一点是

名称属性中可以使用的字符仅限于:A-Z0-9._\-$%。

端口

指定虚拟主机使用的端口号。请确保端口在 边缘路由器。

如果您在 hostalias 元素中指定端口,则必须将端口号 必须匹配该值。ort>

对于 Cloud:您必须在创建虚拟主机时指定端口 443。如果 则端口会默认设为 443。如果您有一个使用 端口不是 443,则无法更改端口。

对于 Private Cloud 版本 4.16.01 至 4.17.05:创建 则您需要指定虚拟主机使用的路由器端口。例如,端口 9001。默认情况下,路由器以用户“apigee”的身份运行它无权访问 特权端口,通常是 1024 及以下端口。如果您想创建虚拟主机 将路由器绑定到受保护的端口,则必须将该路由器配置为以 有权访问这些端口的用户请参阅 设置虚拟主机

对于 4.16.01 之前的 Private Cloud 版本:路由器可以监听 在特定端口上,每个虚拟主机仅有一个具有指定证书的 HTTPS 连接。 因此,当 TLS 终止时,多个虚拟主机无法使用同一个端口号 都发生在路由器指定端口的端口上。

BaseUrl 覆盖已部署到虚拟机中的 API 代理的 Edge 界面显示的网址。 主机。在边缘路由器前面设置外部负载平衡器时非常有用。请参阅 配置 TLS 访问适用于私有云的 API

BaseUrl 的值必须包含协议(即“http://”或 “https://”)。

OCSPStapling

OCSP(在线证书状态协议)客户端将状态 向 OCSP 响应程序发送请求,以确定 TLS 证书是否有效。响应 指示 TLS 证书是否有效且未被吊销。

启用后,OCSP 安装会允许 Edge 充当单向 TLS 的 TLS 服务器, 直接查询 OCSP 响应程序,然后缓存响应。 然后,Edge 会在 TLS 握手过程中将此响应返回给 TLS 客户端或将其固定。 请参阅在服务器上启用 OCSP 装订

必须启用 TLS 才能启用 OCSP 装订。设为 on 即可启用。 默认值为 off

关闭
HostAliases
HostAlias

路由器上虚拟主机的公开显示 DNS 名称,可以选择包含 端口号。虚拟主机的主机别名名称和端口号的组合必须 对于 Edge 安装中的所有虚拟主机而言都是唯一的。这意味着会有多个 如果主机具有不同的主机别名,则可以使用相同的端口号。

您必须创建与主机别名和主机匹配的 DNS 条目和 CNAME 记录 别名必须与客户端在 Host 标头中传递的字符串匹配。

HostAlias 中的端口号是可选的。如果您指定 将端口作为主机别名的一部分,那么您还必须使用 <Port> 元素。或者,您可以指定两个 HostAlias 元素, 一个是端口号,另一个没有

您可以有多个 HostAlias 定义 (对应于 但不适用于多个端口如果您需要多个端口,请创建多个端口 具有不同端口的虚拟主机定义。

您可以在通配符。“*”通配符可以 只能位于主机别名的开头(在第一个“.”之前),且不能与其他字符混用。 例如 *.example.com。虚拟主机的 TLS 证书必须具有 匹配通配符。例如,*.example.com。 在虚拟主机别名中使用通配符可以 API 代理负责处理发送到多个子网域的调用,例如 alpha.example.combeta.example.comlive.example.com。使用通配符别名也有助于减少 以保持在产品范围内 限制,因为使用通配符的虚拟主机仅计为一个虚拟主机。

对于 Cloud:如果您现有的虚拟主机使用其他端口 则不能添加或移除主机别名。

对于私有云:如果要使用 IP 地址设置主机别名 您需要为每个路由器地址(而不是 DNS 条目)添加单独的主机别名, Router(路由器),指定每个路由器的 IP 地址和虚拟主机的端口。

接口 仅适用于 Private Cloud 的 Edge。
接口

指定您希望 port 绑定到的网络接口。如果您 忽略此元素,则该端口会绑定在所有接口上。

例如,如需指定将端口仅绑定到 en0,请使用以下代码:

<Interfaces>
  <Interface>en0</Interface>
</Interfaces>

通过运行“ifconfig -a”来确定系统上可用的接口 命令。

所有接口
RetryOptions 适用于 Edge Cloud 和 Private Cloud 4.18.01 及 。
RetryOption

配置路由器在消息处理器进入时针对此虚拟主机的反应方式 。

您可以使用 <RetryOption> 指定多个值。有效值 包括:

off 停用重试,虚拟主机根据请求返回失败代码。
http_599 (默认)如果路由器从消息中收到 HTTP 599 响应 处理器时,路由器会将请求转发到下一个消息处理器。

HTTP 599 是由 Message 生成的特殊响应代码 关闭时的处理器。消息处理器会尝试完成 但对于任何新请求,它会以 HTTP 599 响应 路由器在下一个消息处理器上重试请求。

error 如果在与消息处理器建立连接时出错, 或者从其读取响应标头 将请求转发给下一个消息处理器。
timeout 如果与消息处理器建立连接时发生超时, 或者从其读取响应标头 将请求转发给下一个消息处理器。
invalid_header 如果消息处理器返回空或无效响应,则路由器 将请求转发给下一个消息处理器。
http_XXX 如果消息处理器返回带有 HTTP 的响应 代码 XXX,路由器会将请求转发给下一条消息 处理器。

如果您指定多个值,路由器会使用逻辑 OR 将这些值组合起来。

例如:

<RetryOptions>
  <RetryOption>http_599</RetryOption>
  <RetryOption>error</RetryOption>
  <RetryOption>timeout</RetryOption>
  <RetryOption>invalid_header</RetryOption>
</RetryOptions>
ListenOptions 适用于 Private Cloud 4.18.01 及更高版本和 Edge 向 Apigee Edge 支持团队提出申请。
ListenOption

如果您在 TCP 直通模式下使用 ELB 来处理发送到边缘路由器的请求, 路由器将 ELB 的 IP 地址(而不是客户端 IP)视为客户端 IP 实际的客户端 IP如果路由器需要真正的客户端 IP, 在以下设备上启用 proxy_protocol: ELB,以便其在 TCP 数据包中传递客户端 IP。在路由器上,您还必须设置 <ListenOption> 复制到 proxy_protocol。 由于 ELB 处于 TCP 直通模式,因此您通常会在路由器上终止 TLS。 因此,您通常只将虚拟主机配置为使用 proxy_protocol。 。

<ListenOption> 的默认值为空 字符串。

例如:

<ListenOptions>
  <ListenOption>proxy_protocol</ListenOption>
</ListenOptions>

如需稍后取消设置 <ListenOption>,请更新 并省略 <ListenOptions> 标记, 更新。

SSLInfo
已启用

启用单向 TLS/SSL。您必须已定义包含证书和 私钥。

对于 Cloud 服务:您必须拥有由 Symantec 或 VeriSign 等可信实体签署的证书。 您不能使用自签名证书或由自签名 CA 签名的叶证书。

对于 Cloud:如果您的现有虚拟主机配置为使用端口 则无法更改 TLS 设置。也就是说,您无法将 TLS 设置从 从“已启用”更改为“已停用”,或从“已停用”更改为“已启用”。

false
ClientAuthEnabled 在边缘(服务器)和应用(客户端)之间启用双向 TLS, 请求。如要启用双向 TLS,您必须在 Edge 上设置包含以下内容的信任库: 从 TLS 客户端获取证书。 false
KeyStore

Edge 上的密钥库的名称。

Apigee 建议您使用引用来指定密钥库名称, 可以更改密钥库,而无需重启路由器。请参阅适用于 配置 TLS 了解详情。

如果“已启用”为 true,则为“是”
KeyAlias 将证书和私钥上传到密钥库时指定的别名。您 必须按字面指定别名;您不能使用引用。请参阅配置选项 TLS 了解详情。 如果“已启用”为 true,则为“是”
TrustStore

Edge 上包含证书或证书链的信任库的名称 用于双向 TLS如果 <ClientAuthEnabled> 为 true,则为必填项。

Apigee 建议您使用引用来指定信任库名称,以便 而无需重启路由器即可更改信任库。请参阅适用于 配置 TLS 了解详情。

IgnoreValidationErrors

如果为 true,则表示忽略 TLS 证书错误。这类似于“-k”选项 复制到 c网址。

在为目标服务器和目标端点配置 TLS 时,此选项有效; 在配置使用双向 TLS 的虚拟主机时需要注意的事项。

当与目标端点/目标服务器搭配使用时,如果后端系统使用 SNI,并返回主题标识名 (DN) 与主机名不匹配的证书,则您无法忽略该错误且连接会失败。

false
加密

仅适用于适用于私有云的 Edge 版本 4.15.07 及更低版本。

指定虚拟主机支持的加密方式。如果未指定加密方式,则 将允许 JVM 可用的所有密码。

如需限制加密算法,请添加以下元素:

<Ciphers>
  <Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA</Cipher>
  <Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256</Cipher>
</Ciphers>
全部由 JVM 支持
协议

仅适用于适用于私有云的 Edge 版本 4.15.07 及更低版本。

指定虚拟主机支持的协议。如果没有指定协议 那么将允许 JVM 可用的所有协议。

如需限制协议,请添加以下元素:

<Protocols>
  <Protocol>TLSv1</Protocol>
  <Protocol>TLSv1.2</Protocol>
  <Protocol>SSLv2Hello</Protocol>
</Protocols>
全部由 JVM 支持
UseBuiltInFreeTrialCert 仅适用于 Edge Cloud。
UseBuiltInFreeTrialCert

如果您有付费的 Cloud Edge 账号,但尚未设置 TLS 证书和密钥,可以执行以下操作: 创建使用 Apigee 免费试用证书和密钥的虚拟主机。也就是说,您可以创建 而无需先创建密钥库。

Apigee 免费试用证书是为 *.apigee.net 网域定义的。因此, 虚拟主机的 <HostAlias> 也必须采用 *.apigee.net 格式。

请参阅定义虚拟主机 (使用 Apigee 免费试用证书和密钥)

false
PropagateTLSInformation 仅在 Edge Cloud 中推出 Alpha 版
ConnectionProperties

启用 Edge 捕获 TLS 连接信息的功能。 然后,此信息将以流变量的形式在 API 代理中提供。 请参阅访问 API 代理中的 TLS 连接信息

false
ClientProperties

启用 Edge 在双向 TLS 中捕获的客户端证书详细信息的功能。 然后,此信息将以流变量的形式在 API 代理中提供。 请参阅访问 API 代理中的 TLS 连接信息

false
媒体资源 适用于 Edge Cloud 和 Private Cloud 4.17.01 及 。
proxy_read_timeout

设置消息处理器和路由器之间的超时持续时间(以秒为单位)。通过 路由器会丢弃连接,如果未收到一个 HTTP 504 响应, 。

Proxy_read_timeout 的值应大于所用的目标超时值 由消息处理器处理这样可确保路由器在 消息处理器有时间返回响应。超时的 根据 消息的 conf_http_HTTPTransport.io.timeout.millis 令牌 处理器。

57
keepalive_timeout

设置客户端与路由器之间的超时持续时间(以秒为单位) 发出包含 Keep-Alive 标头的请求。路由器会保持连接打开 直到有效期结束

如果路由器当前正在等待响应,则不会关闭连接 从消息处理器中进行处理只有在路由器返回响应后,超时才会开始 。

65
ssl_ciphers

设置虚拟主机支持的加密方式,覆盖针对 。

指定以英文冒号分隔的加密算法列表,格式如下:

<Property name="ssl_ciphers">HIGH:!aNULL:!MD5:!DH+3DES:!kEDH;</Property>

如需了解此令牌允许的语法和值,请参阅 https://www.openssl.org/docs/man1.0.2/man1/ciphers.html。 请注意,此令牌使用 OpenSSL 加密名称(例如 AES128-SHA256),而不是 Java/JSSE 加密名称,例如 TLS_RSA_WITH_AES_128_CBC_SHA256。

HIGH:!aNULL:

!MD5:

!DH+3DES:

!kEDH

ssl_protocols

仅适用于 Private Cloud 的 Edge。

将虚拟主机支持的 TLS 协议设置为以空格分隔的列表, 覆盖路由器上设置的默认协议。

注意:如果两个虚拟主机共享同一个端口,则必须将 ssl_protocols 使用同一协议。也就是说,共享同一端口的虚拟主机必须 支持完全相同的协议

指定以空格分隔的 TLS 协议列表,格式如下:

<Property name="ssl_protocols">TLSv1 TLSv1.2</Property>
TLSv1 TLSv1.1 TLSv1.2
proxy_request_buffering

启用(开启)或停用(关闭)对请求正文的缓冲。开启缓冲后, 在将请求正文发送到消息处理器之前,路由器会缓冲整个请求正文。如果 出现了错误,路由器可以重试其他消息处理器。

如果关闭,则会停用缓冲,并将请求正文发送到消息处理器 即时更新。如果发生错误,则路由器不会重试 向另一个消息处理器发出广告请求。

开启
proxy_buffering 启用(开启)或禁用(关闭)响应缓冲。开启缓冲后, 路由器会缓冲响应。关闭缓冲功能后,响应会传递到客户端 在路由器收到数据后立即同步。 开启