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
}
}
# 根域名允许通过 /app 子路径访问该应用
# 否则访问主站点。
example.com {
handle_path /app* {
invoke app-proxy
}
handle {
root * /srv
file_server
}
}
# 该应用也可以通过子域访问。
app.example.com {
invoke app-proxy
}