-
Notifications
You must be signed in to change notification settings - Fork 0
/
server-location.conf.jinja2
35 lines (29 loc) · 1.13 KB
/
server-location.conf.jinja2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
server {
{% for var in variables %}
set {{ var.key }} {{ var.value }};
{% endfor %}
access_log /var/log/nginx/api_access.log {{ name }};
listen 80;
listen 443 ssl;
server_name {{ name }};
# TLS config
ssl_certificate /etc/ssl/certs/{{ name }}.crt;
ssl_certificate_key /etc/ssl/private/{{ name }}.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_protocols TLSv1.1 TLSv1.2;
# API definitions, one per file
{% for location in locations %}
location {{ location.name }} {
{% if location.scope %}internal;{% endif %}
{% for var in location.sets %}set {{ var.key }} {{ var.value }};{% endfor %}
{{ location.proxy.strategy }} {{ location.proxy.rule }};
}
{% endfor %}
# Error responses
error_page 404 = @400; # Invalid paths are treated as bad requests
proxy_intercept_errors on; # Do not send backend errors to the client
include error_page.conf; # API client friendly JSON error responses
default_type application/json; # If no content-type then assume JSON
}