虚拟主机
虚拟主机是路由配置中的顶层配置。每个虚拟主机都有一个逻辑名称以及一组域列表,会根据传入请求的主机头路由到对应的域。这允许为单个监听器配置多个顶级域的路径树。一旦基于域选择了虚拟主机,就会进行路由处理,以便查找并路由到相应上游集群或者是否执行重定向。
{
"name": "...",
"domains": [],
"routes": [],
"require_ssl": "...",
"virtual_clusters": [],
"rate_limits": [],
"request_headers_to_add": []
}
name
(required, string) 虚拟主机的逻辑名称。这在发送某些统计信息时使用,但与转发无关。默认情况下,名称的最大长度限制为60个字符。可通过--max-obj-name-len
命令行参数设置为所需的值,以提高此限制。domains
(required, array) 将与此虚拟主机相匹配的域(主机/机构头)的列表。支持通配符匹配主机,如“.foo.com”或“-bar.foo.com”。请注意,通配符不匹配空字符串。例如“-bar.foo.com”将匹配“baz-bar.foo.com”,但不匹配“-bar.foo.com”。另外,允许一个特殊的“”匹配任何主机/机构头。整个路由配置中只有一台虚拟主机可以匹配“*”。域名在所有虚拟主机中必须是唯一的,否则配置将无法加载。routes
(required, array) 路由列表,将按配置顺序匹配传入请求。第一条匹配的路由将被使用。cors
(optional, object) 指定虚拟主机的CORS策略。require_ssl
(optional, string) 指定虚拟主机所期望的TLS认证的配置类型。可能的值有:- all
所有请求都必须使用TLS。如果请求不使用TLS,则会发送302重定向,通知客户端使用HTTPS。 external_only
来自外部请求必须使用TLS。如果请求是来自外部的,并且它没有使用TLS,则会发送302重定向,通知客户端使用HTTPS。如果未指定此选项,则虚拟主机没有TLS要求。
- all
virtual_clusters
(optional, array) 为此虚拟主机定义的虚拟集群列表。虚拟集群用于进行其他统计信息收集。rate_limits
(optional, array) 应用于虚拟主机的一组速率限制配置。request_headers_to_add
(optional, array) 指定此虚拟主机要添加到每个请求的HTTP头部列表。以下面的形式指定:[
{"key": "header1", "value": "value1"},
{"key": "header2", "value": "value2"}
]
有关更多信息,请参阅自定义请求头部的文档。