文档
一个 项目

invoke

⚠️ 实验性功能

调用一个命名路由

当与具有自身内存状态的 HTTP 处理器指令配合使用,或这些处理器在加载时开销较大时,这非常有用。如果你有数百个或更多站点,调用命名路由可以帮助减少内存使用。

语法

invoke [<matcher>] <route-name>
  • 是要调用的已定义路由的名称。如果找不到该路由,则会触发错误。

示例

定义一个带有 reverse_proxy命名路由,可在多个站点中复用,并且所有站点共享同一个内存负载均衡状态。

&(app-proxy) {
	reverse_proxy app-01:8080 app-02:8080 app-03:8080 {
		lb_policy least_conn
		health_uri /healthz
		health_interval 5s
	}
}

# 主域名允许通过 /app 子路径访问应用,其余为主站点。
example.com {
	handle_path /app* {
		invoke app-proxy
	}

	handle {
		root * /srv
		file_server
	}
}

# 应用也可通过子域访问。
app.example.com {
	invoke app-proxy
}