您正在查看 Apigee Edge 文档。
前往
Apigee X 文档。 info
虚拟主机表示法
您用于定义虚拟主机的 XML 对象取决于您的 Edge 版本:Cloud 或 Private Cloud。
如果您是 Private Cloud 客户,则必须确保您使用的是适用于 您的 Edge 版本的正确 XML。
Cloud 和 Private Cloud 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 |
指定虚拟主机的名称。在配置 API 代理时,您可以使用该名称引用虚拟主机 。 您可以在 name 属性中使用以下字符:A-Z0-9._\-$%。 |
无 | 是 | ||||||||||||
| Port |
指定虚拟主机使用的端口号。确保 Edge 路由器上的端口处于打开状态。 如果您在 对于 Cloud:创建虚拟主机时,您必须指定端口 443。如果 省略,则默认情况下端口设置为 443。如果您有使用 443 以外端口的现有虚拟主机,则无法更改端口。 对于 Private Cloud 4.16.01 到 4.17.05 版本: 创建 虚拟主机时,您需要指定虚拟主机使用的路由器端口。例如,端口 9001。默认情况下,路由器以用户“apigee”的身份运行,该用户无权访问 特权端口(通常是 1024 及更低端口)。如果您想创建将路由器绑定到受保护端口的虚拟主机 ,则必须将路由器配置为以有权访问这些端口的用户的身份运行 。如需了解详情,请参阅 设置虚拟主机。 对于 Private Cloud 4.16.01 之前的版本: 路由器只能在特定端口上使用指定的证书监听每个虚拟主机的一个 HTTPS 连接。因此,如果 TLS 终结 发生在指定端口上的路由器上,则多个虚拟主机无法使用相同的端口号。 |
无 | 是 | ||||||||||||
| BaseUrl | 替换 Edge 界面为部署到虚拟
主机显示的 API 代理网址。当您在 Edge 路由器前面有外部负载平衡器时,此属性非常有用。如需了解详情,请参阅
为 Private Cloud 配置对 API 的 TLS 访问。
|
无 | 否 | ||||||||||||
| OCSPStapling |
OCSP(在线证书状态协议)客户端向 OCSP 响应器发送状态 请求,以确定 TLS 证书是否有效。响应会指明 TLS 证书是否有效且未被撤消。 启用后,OCSP 装订功能允许 Edge(充当单向 TLS 的 TLS 服务器) 直接查询 OCSP 响应器,然后缓存响应。 然后,Edge 会将此响应返回给 TLS 客户端,或者在 TLS 握手期间将其装订到 TLS 客户端。 如需了解详情,请参阅在服务器上启用 OCSP 装订 。 必须启用 TLS 才能启用 OCSP 装订。设置为 |
关闭 | 否 | ||||||||||||
| HostAliases | |||||||||||||||
| HostAlias |
路由器上虚拟主机的公开可见 DNS 名称,可以选择包含 端口号。虚拟主机的别名名称和端口号的组合对于 Edge 安装中的所有虚拟主机都必须是唯一的。这意味着,如果多个虚拟 主机具有不同的主机别名,则可以使用相同的端口号。 您必须创建与主机别名匹配的 DNS 条目和 CNAME 记录,并且主机
别名必须与客户端在
您可以在同一虚拟主机定义中包含多个 您可以在主机别名中添加“*”通配符。“*”通配符只能位于主机别名的开头(第一个“.”之前),不能与其他字符混用。例如 对于 Cloud:如果您有使用 443 以外端口的现有虚拟主机,则无法添加或移除主机别名。 对于 Private Cloud: 如果您要使用路由器的 IP 地址(而不是 DNS 条目)设置主机别名,请为每个路由器添加单独的主机别名,并指定每个路由器的 IP 地址和虚拟主机的端口。 |
无 | 是 | ||||||||||||
| 接口 | 仅适用于 Edge for Private Cloud。 | ||||||||||||||
| Interface |
指定您希望 例如,如需指定仅将端口绑定到 en0,请执行以下操作: <Interfaces> <Interface>en0</Interface> </Interfaces> 运行“ifconfig -a” 命令,确定系统上可用的接口。 |
无 | 所有接口 | ||||||||||||
| RetryOptions | 适用于 Edge Cloud 和 Private Cloud 4.18.01 及 更高版本。 | ||||||||||||||
| RetryOption |
配置当消息处理器关闭时,路由器对此虚拟主机的反应。 您可以使用
如果您指定了多个值,路由器会使用逻辑 OR 将它们组合在一起。 例如: <RetryOptions> <RetryOption>http_599</RetryOption> <RetryOption>error</RetryOption> <RetryOption>timeout</RetryOption> <RetryOption>invalid_header</RetryOption> </RetryOptions> |
||||||||||||||
| ListenOptions | 适用于 Private Cloud 4.18.01 及更高版本,以及 Edge Cloud(通过向 Apigee Edge 支持团队发出请求)。 | ||||||||||||||
| ListenOption |
如果您在 TCP 直通模式下使用 ELB 来处理对 Edge 路由器的请求,
则路由器会将 ELB 的 IP 地址视为客户端 IP,而不是
实际的客户端 IP。如果路由器需要真实的客户端 IP,
请在
例如: <ListenOptions> <ListenOption>proxy_protocol</ListenOption> </ListenOptions> 如需稍后取消设置 |
||||||||||||||
| SSLInfo | |||||||||||||||
| Enabled |
启用单向 TLS/SSL。您必须已定义包含证书和 私钥的密钥库。 对于 Cloud:您必须拥有由受信任实体(例如 Symantec 或 VeriSign)签名的证书。 您不能使用自签名证书,也不能使用由自签名 CA 签名的叶证书。 对于 Cloud:如果您的现有虚拟主机配置为使用 443 以外的端口 ,则无法更改 TLS 设置。这意味着,您无法将 TLS 设置从 启用更改为停用,也无法从停用更改为启用。 |
false | 否 | ||||||||||||
| ClientAuthEnabled | 在 Edge(服务器)和发出请求的应用(客户端)之间启用双向(或客户端)TLS。启用双向 TLS 需要您在 Edge 上设置一个信任库,其中包含 来自 TLS 客户端的证书。 | false | 否 | ||||||||||||
| KeyStore |
Edge 上的密钥库的名称。 Apigee 建议您使用引用来指定密钥库名称,这样您就可以 更改密钥库,而无需重启路由器。如需了解详情,请参阅用于配置 TLS 的 选项。 |
无 | 如果 Enabled 为 true,则为“是” | ||||||||||||
| KeyAlias | 将证书和私钥上传到密钥库时指定的别名。您 必须按字面量指定别名名称;不能使用引用。如需了解详情,请参阅用于配置 Options for configuring TLS 的选项。 | 无 | 如果 Enabled 为 true,则为“是” | ||||||||||||
| TrustStore |
Edge 上信任库的名称,其中包含用于双向 TLS 的证书或证书链
。如果 Apigee 建议您使用引用来指定信任库名称,这样您就可以更改信任库,而无需重启路由器。如需了解详情,请参阅用于配置 TLS 的 选项。 |
无 | 否 | ||||||||||||
| IgnoreValidationErrors |
如果为 true,则指定忽略 TLS 证书错误。这类似于 c网址 的“-k”选项 。 此选项在为目标服务器和目标端点配置 TLS 时,以及 配置使用双向 TLS 的虚拟主机时有效。 当与目标端点/目标服务器搭配使用时,如果后端系统使用 SNI,并返回主题标识名 (DN) 与主机名不匹配的证书 ,则您无法忽略该错误且连接会失败 。 |
false | 否 | ||||||||||||
| Ciphers |
仅适用于 Edge for Private Cloud 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 支持的所有加密方式 | 否 | ||||||||||||
| Protocols |
仅适用于 Edge for Private Cloud 4.15.07 及更早版本。 指定虚拟主机支持的协议。如果未指定协议, 则允许可用于 JVM 的所有协议。 如需限制协议,请添加以下元素: <Protocols> <Protocol>TLSv1</Protocol> <Protocol>TLSv1.2</Protocol> <Protocol>SSLv2Hello</Protocol> </Protocols> |
JVM 支持的所有协议 | 否 | ||||||||||||
| UseBuiltInFreeTrialCert | 仅适用于 Edge Cloud。 | ||||||||||||||
| UseBuiltInFreeTrialCert |
如果您有付费 Edge for Cloud 帐号,并且还没有 TLS 证书和密钥,则可以 创建一个使用 Apigee 免费试用证书和密钥的虚拟主机。这意味着您可以创建 虚拟主机,而无需先创建密钥库。 Apigee 免费试用证书是为 |
false | 否 | ||||||||||||
| PropagateTLSInformation | 仅适用于 Edge Cloud 的 Alpha 版。 | ||||||||||||||
| ConnectionProperties |
启用 Edge 捕获 TLS 连接信息。 然后,此信息将作为 API 代理中的流变量提供。 如需了解详情,请参阅访问 API 代理中的 TLS 连接信息 。 |
false | 否 | ||||||||||||
| ClientProperties |
启用 Edge 在双向 TLS 中捕获的客户端证书详细信息。 然后,此信息将作为 API 代理中的流变量提供。 如需了解详情,请参阅访问 API 代理中的 TLS 连接信息 。 |
false | 否 | ||||||||||||
| Properties | 适用于 Edge Cloud 和 Private Cloud 4.17.01 及 更高版本。 | ||||||||||||||
| proxy_read_timeout |
设置消息处理器和路由器之间的超时时长(以秒为单位)。如果路由器在此时长到期之前未收到消息处理器的响应,则会断开连接并返回 HTTP 504 响应。 proxy_read_timeout 的值应大于消息处理器使用的目标超时值。这样可确保路由器不会在
消息处理器有时间返回响应之前超时。消息处理器的默认目标超时时间为 55 秒(55000 毫秒),由消息处理器的
|
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 |
仅适用于 Edge for Private Cloud。 将虚拟主机支持的 TLS 协议设置为以空格分隔的列表, 替换路由器上设置的默认协议。 注意:如果两个虚拟主机共享同一个端口,则必须将
请指定以空格分隔的 TLS 协议列表,格式如下: <Property name="ssl_protocols">TLSv1 TLSv1.2</Property> |
TLSv1 TLSv1.1 TLSv1.2 | 否 | ||||||||||||
| proxy_request_buffering |
启用 (on) 或停用 (off) 请求正文的缓冲。启用缓冲后, 路由器会在将整个请求正文发送到消息处理器之前对其进行缓冲。如果 发生错误,路由器可以重试其他消息处理器。 如果停用,则缓冲将被停用,并且请求正文会在收到后立即发送到消息处理器 。如果发生错误,路由器不会向其他消息处理器重试 请求。 |
开启 | 否 | ||||||||||||
| proxy_buffering | 启用 (on) 或停用 (off) 响应的缓冲。启用缓冲后, 路由器会缓冲响应。停用缓冲后,响应会同步传递给客户端 ,路由器收到响应后会立即传递。 | 开启 | 否 | ||||||||||||