mirror of
https://gitlab.com/openstapps/openstapps.git
synced 2025-12-13 01:36:22 +00:00
42 lines
1.2 KiB
Plaintext
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;
|
|
}
|