first version of proxy site for nginx
This commit is contained in:
parent
d448eb6522
commit
ba0c70532f
2 changed files with 96 additions and 0 deletions
54
roles/nginx/site/tasks/main.yml
Normal file
54
roles/nginx/site/tasks/main.yml
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
---
|
||||||
|
- name: "create site data directory for {{ site }}"
|
||||||
|
file:
|
||||||
|
path: "/srv/web/{{ site }}"
|
||||||
|
state: directory
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: "{{ ansible_wheel }}"
|
||||||
|
when: redirect is not defined and proxy is not defined
|
||||||
|
|
||||||
|
- name: "create site config for {{ site }}"
|
||||||
|
template:
|
||||||
|
dest: /etc/nginx/conf.d/{{ site }}.conf
|
||||||
|
src: site.conf.j2
|
||||||
|
mode: 0644
|
||||||
|
owner: root
|
||||||
|
group: "{{ ansible_wheel }}"
|
||||||
|
notify: restart nginx
|
||||||
|
|
||||||
|
- name: "copy site private key for {{ site }}"
|
||||||
|
copy:
|
||||||
|
dest: "{{ tls_private }}/{{ site }}.key"
|
||||||
|
src: "{{ item }}"
|
||||||
|
mode: 0600
|
||||||
|
owner: root
|
||||||
|
group: "{{ ansible_wheel }}"
|
||||||
|
with_first_found:
|
||||||
|
- "/srv/letsencrypt/live/{{ site }}/privkey.pem"
|
||||||
|
- "/srv/ca/private/{{ inventory_hostname }}.key"
|
||||||
|
notify: restart nginx
|
||||||
|
|
||||||
|
- name: "copy site certificate chain for {{ site }}"
|
||||||
|
copy:
|
||||||
|
src: "{{ item }}"
|
||||||
|
dest: "{{ tls_certs }}/{{ site }}-chain.crt"
|
||||||
|
mode: 0644
|
||||||
|
owner: root
|
||||||
|
group: "{{ ansible_wheel }}"
|
||||||
|
with_first_found:
|
||||||
|
- "/srv/letsencrypt/live/{{ site }}/chain.pem"
|
||||||
|
- "/srv/ca/certs/ca.crt"
|
||||||
|
notify: restart nginx
|
||||||
|
|
||||||
|
- name: "copy site certificate for {{ site }}"
|
||||||
|
copy:
|
||||||
|
src: "{{ item }}"
|
||||||
|
dest: "{{ tls_certs }}/{{ site }}.crt"
|
||||||
|
mode: 0644
|
||||||
|
owner: root
|
||||||
|
group: "{{ ansible_wheel }}"
|
||||||
|
with_first_found:
|
||||||
|
- "/srv/letsencrypt/live/{{ site }}/cert.pem"
|
||||||
|
- "/srv/ca/certs/{{ inventory_hostname }}.crt"
|
||||||
|
notify: restart nginx
|
42
roles/nginx/site/templates/site.conf.j2
Normal file
42
roles/nginx/site/templates/site.conf.j2
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 443 ssl;
|
||||||
|
listen [::]:443 ssl;
|
||||||
|
server_name {{ site }};
|
||||||
|
|
||||||
|
ssl_certificate {{ tls_certs }}/{{ site }}.crt;
|
||||||
|
ssl_trusted_certificate {{ tls_certs }}/{{ site }}-chain.crt;
|
||||||
|
ssl_certificate_key {{ tls_private }}/{{ site }}.key;
|
||||||
|
|
||||||
|
{% if redirect is defined %}
|
||||||
|
return 301 {{ redirect }};
|
||||||
|
{% elif proxy is defined %}
|
||||||
|
location / {
|
||||||
|
proxy_pass {{ proxy }};
|
||||||
|
proxy_ssl_certificate {{ tls_certs }}/{{ inventory_hostname }}.crt;
|
||||||
|
proxy_ssl_certificate_key {{ tls_private }}/{{ inventory_hostname }}.key;
|
||||||
|
}
|
||||||
|
{% else %}
|
||||||
|
root /srv/web/{{ site }};
|
||||||
|
{% endif %}
|
||||||
|
include /etc/nginx/conf.d/{{ site }}/*.conf;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
ssl off;
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
server_name {{ site }};
|
||||||
|
location /.well-known/acme-challenge/ {
|
||||||
|
proxy_pass https://noc02.home.foo.sh/.well-known/acme-challenge/;
|
||||||
|
proxy_ssl_certificate {{ tls_certs }}/{{ inventory_hostname }}.crt;
|
||||||
|
proxy_ssl_certificate_key {{ tls_private }}/{{ inventory_hostname }}.key;
|
||||||
|
}
|
||||||
|
location / {
|
||||||
|
{% if redirect is defined %}
|
||||||
|
return 301 {{ redirect }};
|
||||||
|
{% else %}
|
||||||
|
return 301 https://$host$request_uri;
|
||||||
|
{% endif %}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue