From 099c8cba8a318887840b91ffd61a95598016b704 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Tue, 24 Jun 2025 15:39:47 +0300 Subject: Start working on host reverse proxy --- playbook.yml | 2 ++ tasks/jails.yml | 3 --- tasks/network.yml | 25 +++++++++++++++++++ templates/usr_local_etc_nginx_nginx.conf.j2 | 37 +++++++++++++++++++++++++++++ 4 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 templates/usr_local_etc_nginx_nginx.conf.j2 diff --git a/playbook.yml b/playbook.yml index fad7867..692c35c 100644 --- a/playbook.yml +++ b/playbook.yml @@ -19,6 +19,8 @@ smtp_port: "{{ lookup('env', 'SMTP_PORT') }}" dma_mail_hostname: "{{ lookup('env', 'DMA_MAILNAME') }}" dma_to_address: "{{ lookup('env', 'DMA_TO_ADDRESS') }}" + jails: + - { name: nginx_test, ip: "192.168.2.1" } tasks: - name: Run network tasks diff --git a/tasks/jails.yml b/tasks/jails.yml index 46744d6..24ef25f 100644 --- a/tasks/jails.yml +++ b/tasks/jails.yml @@ -53,9 +53,6 @@ shell: zfs snapshot zroot/jails/templates/14.3-RELEASE@base - name: Configure jails - vars: - jails: - - { name: nginx_test, ip: "192.168.2.1" } block: - name: Configure jail.conf template: diff --git a/tasks/network.yml b/tasks/network.yml index 7f75de6..0f713a0 100644 --- a/tasks/network.yml +++ b/tasks/network.yml @@ -72,3 +72,28 @@ - name: Reload pf rules shell: pfctl -f /etc/pf.conf when: pf_conf.changed + +- name: Install nginx + package: + name: nginx + state: present + +- name: Configure nginx.conf + template: + src: usr_local_etc_nginx_nginx.conf.j2 + dest: /usr/local/etc/nginx/nginx.conf + owner: root + group: wheel + mode: "0644" + register: nginx_conf + +- name: Enable nginx + service: + name: nginx + enabled: true + +- name: Restart nginx + service: + name: nginx + state: restarted + when: nginx_conf.changed diff --git a/templates/usr_local_etc_nginx_nginx.conf.j2 b/templates/usr_local_etc_nginx_nginx.conf.j2 new file mode 100644 index 0000000..f81a82c --- /dev/null +++ b/templates/usr_local_etc_nginx_nginx.conf.j2 @@ -0,0 +1,37 @@ +worker_processes auto; + +events { + worker_connections 1024; +} + +http { + include mime.types; + default_type application/octet-stream; + + sendfile on; + keepalive_timeout 65; + + server { + listen 80 default_server; + server_name _; + + location / { + return 404; + } + } + + {% for jail in jails -%} + server { + listen 80; + server_name {{ jail.name }}.local.jan.systems; + + location / { + proxy_pass http://{{ jail.ip }}; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + } + {% endfor %} +} -- cgit v1.3