simple_nginx_reverse_proxy
Ansible роль для простой установки nginx в режиме обратного прокси
Эта роль устанавливает nginx в качестве простого обратного прокси-сервера.
Переменные Роли
Для полного обзора вариантов конфигурации смотрите defaults.
Конфигурация Прокси
Эта роль идет с настройками по умолчанию, которые автоматически перенаправляют на HTTPS и позволяют вам указать простой блок для конфигурации Nginx:
nginx_proxy: |
location / {
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;
proxy_pass http://127.0.0.1:8080;
}
TLS Сертификаты
Конфигурация по умолчанию предоставляет простые, самоподписанные сертификаты, если таковые отсутствуют. Пожалуйста, убедитесь, что вы заменили их на свои собственные сертификаты. Просто перезапишите следующие файлы:
/etc/nginx/tls/certificate.key;
/etc/nginx/tls/certificate.crt;
Расширенная Конфигурация
Вы можете установить опцию nginx_config
, чтобы перезаписать конфигурацию по умолчанию и указать собственные файлы конфигурации.
Укажите список полей src
и dest
, указывая шаблоны для развертывания.
Поле dest
всегда указывает на местоположение относительно /etc/nginx/
:
roles:
- role: elan.simple_nginx_reverse_proxy
nginx_config:
- src: nginx.conf
dest: nginx.conf
Учтите, что роль включает шаблон nginx.conf
.
Указание src: nginx.conf
всегда будет использовать включенный шаблон.
Настройки, Связанные с Безопасностью
Эта роль может открывать порты для Nginx в firewalld или ufw. Она также может устанавливать булевы значения SELinux, чтобы разрешить Nginx действовать как обратный прокси. Эти настройки по умолчанию отключены, и вам нужно явно их включить:
configure_for_firewalld: true
configure_for_ufw: true
configure_for_selinux: true
Пример Плейбука
Ваш плейбук может выглядеть так:
---
- hosts: all
become: true
roles:
- role: elan.simple_nginx_reverse_proxy
configure_for_firewalld: true
Разработка
Для разработки и тестирования вы можете использовать molecule. С podman в качестве драйвера вы можете установить его следующим образом – желательно в виртуальной среде:
pip install -r .dev_requirements.txt
Затем вы можете создавать тестовые экземпляры, применять конфигурацию ansible (converge) и удалять тестовые экземпляры с помощью следующих команд:
molecule create
molecule converge
molecule destroy
Лицензия
Информация об Авторах
ansible-galaxy install elan-ev/simple_nginx_reverse_proxy