虚拟主机

虚拟主机是路由配置中的顶层配置。每个虚拟主机都有一个逻辑名称以及一组域列表,会根据传入请求的主机头路由到对应的域。这允许为单个监听器配置多个顶级域的路径树。一旦基于域选择了虚拟主机,就会进行路由处理,以便查找并路由到相应上游集群或者是否执行重定向。

  1. {
  2. "name": "...",
  3. "domains": [],
  4. "routes": [],
  5. "require_ssl": "...",
  6. "virtual_clusters": [],
  7. "rate_limits": [],
  8. "request_headers_to_add": []
  9. }
  • 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要求。

  • virtual_clusters
    (optional, array) 为此虚拟主机定义的虚拟集群列表。虚拟集群用于进行其他统计信息收集。

  • rate_limits
    (optional, array) 应用于虚拟主机的一组速率限制配置。

  • request_headers_to_add
    (optional, array) 指定此虚拟主机要添加到每个请求的HTTP头部列表。以下面的形式指定:

    1. [
    2. {"key": "header1", "value": "value1"},
    3. {"key": "header2", "value": "value2"}
    4. ]

    有关更多信息,请参阅自定义请求头部的文档。

返回