您正在查看 Apigee Edge 文档。
前往 Apigee X 文档。信息
虚拟主机表示法
您用于定义虚拟主机的 XML 对象取决于您使用的 Edge 版本: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>
私有云 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 以外的端口,则无法更改该端口。 对于私有云版本 4.16.01 到 4.17.05:创建虚拟主机时,您需要指定虚拟主机使用的路由器端口。例如,端口 9001。默认情况下,路由器会以用户“apigee”的身份运行,该用户无权访问特权端口(通常是 1024 及以下的端口)。如果要创建将路由器绑定到受保护端口的虚拟主机,则必须将路由器配置为以有权访问这些端口的用户身份运行。如需了解详情,请参阅设置虚拟主机。 对于 4.16.01 之前的私有云版本:路由器只能监听每个虚拟主机在特定端口上使用指定证书的单个 HTTPS 连接。因此,如果在路由器上的指定端口发生 TLS 终止,多个虚拟主机无法使用相同的端口号。 |
无 | 是 | ||||||||||||
BaseUrl | 替换 Edge 界面针对部署到虚拟主机的 API 代理显示的网址。如果您在边缘路由器前面有外部负载平衡器,此属性会很有用。如需了解详情,请参阅配置对私有云 API 的 TLS 访问权限。
|
无 | 否 | ||||||||||||
OCSPStapling |
OCSP(在线证书状态协议)客户端向 OCSP 响应方发送状态请求,以确定 TLS 证书是否有效。响应指示 TLS 证书是否有效且未被撤消。 启用后,OCSP 绑定允许 Edge(充当单向 TLS 的 TLS 服务器)直接查询 OCSP 响应程序,然后缓存响应。然后,Edge 会将此响应返回给 TLS 客户端,或在 TLS 握手过程中将其固定。 如需了解详情,请参阅在服务器上启用 OCSP 装订。 必须启用 TLS 才能启用 OCSP 订阅。设置为 |
关闭 | 否 | ||||||||||||
HostAliases | |||||||||||||||
HostAlias |
路由器上虚拟主机的公开 DNS 名称,可包含端口号。对于 Edge 安装中的所有虚拟主机,虚拟主机的主机别名名称和端口号的组合必须是唯一的。也就是说,如果多个虚拟主机具有不同的主机别名,则可以使用相同的端口号。 您必须创建与主机别名匹配的 DNS 条目和 CNAME 记录,并且主机别名必须与客户端在
您可以在同一个虚拟主机定义中包含多个 您可以在主机别名中添加“*”通配符。“*”通配符只能位于主机别名的开头(第一个“.”之前),且不能与其他字符混用。
例如 对于 Cloud:如果您已经有一个使用 443 以外的端口的虚拟主机,则无法添加或移除主机别名。 对于私有云:如果您使用路由器的 IP 地址而不是 DNS 条目来设置主机别名,请为每个路由器添加单独的主机别名,并指定每个路由器的 IP 地址和虚拟主机的端口。 |
无 | 是 | ||||||||||||
接口 | 仅适用于 Edge for Private Cloud。 | ||||||||||||||
接口 |
指定您希望 例如,如需指定仅将端口绑定到 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 来处理发送到边缘路由器的请求,则路由器会将 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 | 在发出请求的 Edge(服务器)和应用(客户端)之间启用双向(或客户端)TLS。要启用双向 TLS,您需要在 Edge 上设置包含 TLS 客户端证书的信任库。 | false | 否 | ||||||||||||
KeyStore |
Edge 上的密钥库的名称。 Apigee 建议您使用引用来指定密钥库名称,以便您更改密钥库,而无需重启路由器。如需了解详情,请参阅用于配置 TLS 的选项。 |
无 | 如果“已启用”为 true,则为“是” | ||||||||||||
KeyAlias | 将证书和私钥上传到密钥库时指定的别名。您必须逐字指定别名;不能使用引用。如需了解详情,请参阅用于配置 TLS 的选项。 | 无 | 如果 Enabled 为 true,则为“是” | ||||||||||||
TrustStore |
Edge 上信任库的名称,其中包含用于双向 TLS 的证书或证书链。如果 Apigee 建议您使用引用来指定信任库名称,以便您更改信任库,而无需重启路由器。如需了解详情,请参阅用于配置 TLS 的选项。 |
无 | 否 | ||||||||||||
IgnoreValidationErrors |
如果为 true,则指定忽略 TLS 证书错误。这类似于 c网址 的“-k”选项。 为目标服务器和目标端点配置 TLS 时,以及配置使用双向 TLS 的虚拟主机时,此选项有效。 当与目标端点/目标服务器搭配使用时,如果后端系统使用 SNI,并返回主题标识名 (DN) 与主机名不匹配的证书,则您无法忽略该错误且连接会失败。 |
false | 否 | ||||||||||||
加密方式 |
仅适用于 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 支持 | 否 | ||||||||||||
协议 |
仅适用于 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 |
启用在双向 TLS 中捕获 Edge 捕获的客户端证书详细信息。 然后,这些信息会作为流变量在 API 代理中提供。 如需了解详情,请参阅访问 API 代理中的 TLS 连接信息。 |
false | 否 | ||||||||||||
媒体资源 | 适用于 Edge Cloud 和 Private Cloud 4.17.01 及更高版本。 | ||||||||||||||
proxy_read_timeout |
设置消息处理器和路由器之间的超时时长(以秒为单位)。如果路由器在此时长结束之前未收到消息处理器的响应,则会断开连接并返回 HTTP 504 响应。 proxy_read_timeout 的值应大于消息处理器使用的目标超时值。这可确保路由器不会在消息处理器有时间返回响应之前超时。根据消息处理器的 |
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 |
启用(开启)或停用(关闭)对请求正文的缓冲。启用缓冲后,路由器会先缓冲整个请求正文,然后再将其发送到消息处理器。如果出现错误,路由器可以尝试使用其他消息处理器。 如果处于关闭状态,则会停用缓冲,并在收到请求正文后立即将其发送到消息处理器。如果出现错误,路由器不会向其他消息处理器重试请求。 |
开启 | 否 | ||||||||||||
proxy_buffering | 启用(开启)或停用(关闭)响应缓冲。启用缓冲后,路由器会缓冲响应。关闭缓冲后,路由器收到响应后,系统会立即将响应同步传递给客户端。 | 开启 | 否 |