caddy/modules/caddyhttp/starlarkmw/tools/gen/example.star
Matthew Holt 26cc883708
http: Add Starlark handler
This migrates a feature that was previously reserved for enterprise
users, according to #2786.

The Starlark integration needs to be updated since this was made before
some significant changes in the v2 code base. When functional, it makes
it possible to have very dynamic HTTP handlers. This will be a long-term
ongoing project.

Credit to Danny Navarro
2019-10-10 11:02:16 -06:00

41 lines
742 B
Plaintext

# any module that provisions resources
proxyConfig = {
'load_balance_type': 'round_robin',
'upstreams': [
{
'host': 'http://localhost:8080',
'circuit_breaker': {
'type': 'status_ratio',
'threshold': 0.5
}
},
{
'host': 'http://localhost:8081'
}
]
}
sfConfig = {
'root': '/Users/dev/Desktop',
'browse': {},
}
proxy = loadResponder('reverse_proxy', proxyConfig)
static_files = loadResponder('file_server', sfConfig)
def setup(r):
# create some middlewares specific to this request
mid = []
if r.query.get('log') == 'true':
logMid = loadMiddleware('log', {'file': 'access.log'})
mid.append(logMid)
execute(mid)
def serveHTTP(w, r):
if r.url.find('static') > 0:
return static_files
return proxy