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