文档
一个 项目

invoke

⚠️ 实验性

调用一个 命名路由.

这在与具有自身内存状态的 HTTP 处理程序指令配对时很有用,或者如果它们在加载时很昂贵。如果您有数百个或更多站点,调用命名路由可以帮助减少内存使用。

语法

invoke [<matcher>] <route-name>
  • <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
	}
}

# Apex domain allows accessing the app via an /app subpath
# and the main site otherwise.
example.com {
	handle_path /app* {
		invoke app-proxy
	}

	handle {
		root * /srv
		file_server
	}
}

# The app is also accessible via a subdomain.
app.example.com {
	invoke app-proxy
}