Files
openstapps/backend/proxy/fixtures/visibleRoute.template

42 lines
1.2 KiB
Plaintext

location {{{ route }}} {
# use our custom request limit and allow bursts
# deliver them with no queuing delay
limit_req zone=customstappslimit burst=20 nodelay;
# intercept OPTIONS request
# all other CORS headers are set by the backend(s)
# see https://gist.github.com/michiel/1064640/0dafeb1e8f71a26b94ea15e09e7e5f45bed14dda
if ($request_method = 'OPTIONS') {
{{{ cors }}}
add_header 'Content-Length' '0';
return 204;
}
# if client doesn't set a version header, we don't know which backend to choose
if ($http_x_stapps_version = "") {
# return Multiple Choices
return 300 'You have to supply a client/app version via the X-StApps-Version header!';
}
# Version is unsupported or never existed
if ($proxyurl = unsupported) {
{{{ cors }}}
return 404;
}
# The version existed, but is outdated now (App should update)
if ($proxyurl = outdated) {
return 404;
}
# The version is correct, but backend is not responding
if ($proxyurl = unavailable) {
{{{ cors }}}
return 503;
}
limit_except GET OPTIONS POST {
deny all;
}
# backend is available
proxy_pass http://$proxyurl;
}