summaryrefslogtreecommitdiff
path: root/roles/nginx
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2020-08-28 21:13:35 +0200
committerChristian Pointner <equinox@spreadspace.org>2020-08-28 21:13:35 +0200
commit6b115ba61541b4ea158b102e9fe32658894189af (patch)
tree66abbef7825b52c084baf82f7645c1235155f9f3 /roles/nginx
parenthttp|imap-proxy: fix tls encryption to backend (allow TLS1.0) (diff)
nginx/vhost: static file template and catchall site for ch-http-proxy
Diffstat (limited to 'roles/nginx')
-rw-r--r--roles/nginx/vhost/defaults/main.yml16
-rw-r--r--roles/nginx/vhost/templates/static-files-with-acme.conf.j236
2 files changed, 50 insertions, 2 deletions
diff --git a/roles/nginx/vhost/defaults/main.yml b/roles/nginx/vhost/defaults/main.yml
index dfedb50b..eea545c8 100644
--- a/roles/nginx/vhost/defaults/main.yml
+++ b/roles/nginx/vhost/defaults/main.yml
@@ -4,10 +4,22 @@
# template: generic-proxy-no-buffering-with-acme
# acme: yes
# hostnames:
-# - example.com
-# - www.example.com
+# - example.com
+# - www.example.com
# proxy_pass: http://127.0.0.1:8080
+# default: yes
# nginx_vhost:
# name: other-example
# content: "<<< content of vhost >>>"
+
+# nginx_vhost:
+# name: static
+# template: static-files-with-acme
+# acme: yes
+# hostnames:
+# - static.example.com
+# root: /srv/www/static
+# index: index.html
+# autoindex:
+# format: json
diff --git a/roles/nginx/vhost/templates/static-files-with-acme.conf.j2 b/roles/nginx/vhost/templates/static-files-with-acme.conf.j2
new file mode 100644
index 00000000..f99d6eb4
--- /dev/null
+++ b/roles/nginx/vhost/templates/static-files-with-acme.conf.j2
@@ -0,0 +1,36 @@
+server {
+ listen 80{% if 'default' in nginx_vhost and nginx_vhost.default %} default_server{% endif %};
+ listen [::]:80{% if 'default' in nginx_vhost and nginx_vhost.default %} default_server{% endif %};
+ server_name {{ nginx_vhost.hostnames | join(' ') }};
+
+ include snippets/acmetool.conf;
+
+ location / {
+ return 301 https://$host$request_uri;
+ }
+}
+
+server {
+ listen 443 ssl http2{% if 'default' in nginx_vhost and nginx_vhost.default %} default_server{% endif %};
+ listen [::]:443 ssl http2{% if 'default' in nginx_vhost and nginx_vhost.default %} default_server{% endif %};
+ server_name {{ nginx_vhost.hostnames | join(' ') }};
+
+ include snippets/acmetool.conf;
+ include snippets/tls{% if 'tls_variant' in nginx_vhost %}-{{ nginx_vhost.tls_variant }}{% endif %}.conf;
+ ssl_certificate /var/lib/acme/live/{{ nginx_vhost.hostnames[0] }}/fullchain;
+ ssl_certificate_key /var/lib/acme/live/{{ nginx_vhost.hostnames[0] }}/privkey;
+ include snippets/hsts.conf;
+
+ location / {
+ root {{ nginx_vhost.root }};
+{% if 'index' in nginx_vhost %}
+ index {{ nginx_vhost.index }};
+{% endif %}
+{% if 'autoindex' in nginx_vhost %}
+ autoindex on;
+{% if 'format' in nginx_vhost.autoindex %}
+ autoindex_format {{ nginx_vhost.autoindex.format }};
+{% endif %}
+{% endif %}
+ }
+}