a project


Evaluates a group of directives mutually exclusively from other handle blocks at the same level of nesting.

The handle directive is kind of similar to the location directive from nginx config: the first matching handle block will be evaluated. Handle blocks can be nested if needed. Only HTTP handler directives can be used inside handle blocks.


handle [<matcher>] {
  • <directives...> is a list of HTTP handler directives or directive blocks, one per line, just like would be used outside of a handle block.


If you prefer crafting HTTP handler logic in a more inheritence-based way like nginx location blocks, you may prefer the use of handle blocks rather than defining mutually-exclusive matchers for your directives. If inheritence is a desired characteristic of your HTTP handler configurations, then the handle directive may suit you well.


Handle requests in /foo/ by the static file server, and send all other requests to the reverse proxy:

handle /foo/* {
handle {