summaryrefslogtreecommitdiff
path: root/roles/nginx/vhost
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2023-08-14 23:01:11 +0200
committerChristian Pointner <equinox@spreadspace.org>2023-08-20 22:12:03 +0200
commit886a3162765240cade2acd6ec890e0377bd9631d (patch)
tree54edc5c31dd85a1f02fcc7c0632aca3cc6a3e157 /roles/nginx/vhost
parentnginx/vhost: fix some template indentation errors (diff)
collabora/code: move to generic nginx-vhost template
Diffstat (limited to 'roles/nginx/vhost')
-rw-r--r--roles/nginx/vhost/defaults/main.yml14
-rw-r--r--roles/nginx/vhost/templates/generic.conf.j264
2 files changed, 48 insertions, 30 deletions
diff --git a/roles/nginx/vhost/defaults/main.yml b/roles/nginx/vhost/defaults/main.yml
index 1447fb14..0eb67b42 100644
--- a/roles/nginx/vhost/defaults/main.yml
+++ b/roles/nginx/vhost/defaults/main.yml
@@ -60,5 +60,19 @@
# fastcgi_pass unix:/run/fcgiwrap/foo.sock;
# nginx_vhost:
+# name: example-custom
+# template: generic
+# tls:
+# variant: legacy
+# hsts: false
+# certificate_provider: acmetool
+# hostnames:
+# - static.example.com
+# custom: |-
+# location / {
+# foo "bar";
+# }
+
+# nginx_vhost:
# name: other-example
# content: "<<< content of vhost >>>"
diff --git a/roles/nginx/vhost/templates/generic.conf.j2 b/roles/nginx/vhost/templates/generic.conf.j2
index 356c74dc..64569a5e 100644
--- a/roles/nginx/vhost/templates/generic.conf.j2
+++ b/roles/nginx/vhost/templates/generic.conf.j2
@@ -47,13 +47,16 @@ server {
{% endif %}
{% endif %}
-{% if 'extra_directives' in nginx_vhost %}
- {{ nginx_vhost.extra_directives | indent(4) }}
+{% if 'custom' in nginx_vhost %}
+ {{ nginx_vhost.custom | trim | indent(4) }}
+{% else %}
+{% if 'extra_directives' in nginx_vhost %}
+ {{ nginx_vhost.extra_directives | trim | indent(4) }}
-{% endif %}
-{% for path, location in nginx_vhost.locations.items() %}
+{% endif %}
+{% for path, location in nginx_vhost.locations.items() %}
location {{ path }} {
-{% if 'proxy_pass' in location %}
+{% if 'proxy_pass' in location %}
include snippets/proxy-nobuff.conf;
proxy_set_header Host $host;
include snippets/proxy-forward-headers.conf;
@@ -63,40 +66,41 @@ server {
proxy_set_header Connection $connection_upgrade;
proxy_pass {{ location.proxy_pass }};
-{% if 'proxy_redirect' in location %}
-{% for entry in location.proxy_redirect %}
+{% if 'proxy_redirect' in location %}
+{% for entry in location.proxy_redirect %}
proxy_redirect {{ entry.redirect }} {{ entry.replacement }};
-{% endfor %}
-{% endif %}
-{% if 'proxy_ssl' in location %}
-{% for prop in (location.proxy_ssl | list | sort) %}
+{% endfor %}
+{% endif %}
+{% if 'proxy_ssl' in location %}
+{% for prop in (location.proxy_ssl | list | sort) %}
proxy_ssl_{{ prop }} {{ location.proxy_ssl[prop] }};
-{% endfor %}
-{% endif %}
-{% elif 'return' in location %}
+{% endfor %}
+{% endif %}
+{% elif 'return' in location %}
return {{ location.return }};
-{% elif 'custom' in location %}
- {{ location.custom | indent(8) }}
-{% else %}
-{% if 'root' in location %}
+{% elif 'custom' in location %}
+ {{ location.custom | trim | indent(8) }}
+{% else %}
+{% if 'root' in location %}
root {{ location.root }};
-{% elif 'alias' in location %}
+{% elif 'alias' in location %}
alias {{ location.alias }};
-{% endif %}
-{% if 'index' in location %}
+{% endif %}
+{% if 'index' in location %}
index {{ location.index }};
-{% endif %}
-{% if 'autoindex' in location %}
+{% endif %}
+{% if 'autoindex' in location %}
autoindex on;
-{% if 'format' in location.autoindex %}
+{% if 'format' in location.autoindex %}
autoindex_format {{ nginx_vhost.autoindex.format }};
-{% endif %}
+{% endif %}
+{% endif %}
{% endif %}
-{% endif %}
-{% if 'extra_directives' in location %}
+{% if 'extra_directives' in location %}
- {{ location.extra_directives | indent(8) }}
-{% endif %}
+ {{ location.extra_directives | trim | indent(8) }}
+{% endif %}
}
-{% endfor %}
+{% endfor %}
+{% endif %}
}