nginx

Nginx для роли Ansible на Debian/FreeBSD

Ansible Galaxy GitHub Workflow Status (master branch)

Установите и настройте Nginx на Debian/FreeBSD.

Особенности:

  • Поддержка SSL/TLS "усиленная"
  • Управление базовой аутентификацией на сайте/папке
  • Прокси + Upstream
  • Быстрая настройка PHP
  • Предустановленные шаблоны сайтов (должны работать на многих приложениях)
  • Автонастройка HTTP2 на SSL/TLS сайтах
  • Управление динамическими модулями (установка и загрузка)
  • Развертывание пользовательских fact.d с конфигурацией сайтов
  • Возможность слушать с протоколом прокси
  • Генерация сертификатов с помощью acme.sh (let's encrypt) -- ЭКСПЕРИМЕНТАЛЬНО

Поддерживаемые ОС:

ОС Работает Стабильная (активная поддержка)
Debian Jessie (8) Да Проверьте последнюю поддерживаемую версию (1.5.0)
Debian Stretch (9) Да Проверьте последнюю поддерживаемую версию (1.9.0)
Debian Buster (10) Да Да
Debian Bullseye (11) Да Да
Debian Bookworm (12) Да Пока нет :)
FreeBSD 11 НД Нет
FreeBSD 12 НД Нет
Ubuntu 20.04 Да Да
Ubuntu 22.04 Да Да

Требования

  • Ansible >=2.11
  • Если вы установите nginx_backports в true, вы должны установить репозиторий backports перед запуском этой роли.

Переменные роли

Упаковка

Debian:

  • nginx_apt_package: APT пакет nginx (попробуйте: apt-cache search ^nginx)
  • nginx_backports: Установка nginx из репозитория backport (логическое значение)

FreeBSD:

  • nginx_pkgng_package: PKGNG пакет nginx (должен быть "nginx" или "nginx-devel")

Общие

  • nginx_root: корневая директория, где вы хотите хранить свои файлы
  • nginx_log_dir: директория логов (если вы измените ее, не забудьте изменить конфигурацию logrotate)
  • nginx_resolver: список DNS-резолверов (по умолчанию: OpenDNS)
  • nginx_error_log_level: уровень логирования по умолчанию
  • nginx_auto_config_httpv2: логическое значение, автонастройка HTTP2, где это возможно
  • nginx_fastcgi_fix_realpath: логическое значение, использование realpath для fastcgi (исправление проблем с символьными ссылками и PHP opcache)
  • nginx_default_hsts: строка, заголовок по умолчанию для HSTS

Конфигурация Nginx

  • nginx_user
  • nginx_worker_processes
  • nginx_pid: файл pid демона
  • nginx_events_*: все переменные в блоке событий
  • nginx_http_*: все переменные в http блоке
  • nginx_custom_core: список инструкций (для core, будет помещено в /etc/nginx/nginx.conf)
  • nginx_custom_http: список инструкций (будет помещено в /etc/nginx/conf.d/custom.conf)
  • nginx_module_packages: список пакетов модулей для установки (Debian)
  • nginx_load_modules: список модулей для загрузки (полный путь), должно использоваться только на FreeBSD

Прочее

  • nginx_debug_role: установите true, если вам нужно вывести результат задач no_log

О модулях

Недавние обновления из Debian backports загружают модули из директории /etc/nginx/modules-enabled. Отключение/включение больше не поддерживается. Пожалуйста, ждите дальнейших обновлений.

Точная настройка

Конфигурация сайта

Конфигурация PHP

Конфигурация Upstream

Конфигурация SSL/TLS

Базовая аутентификация

FreeBSD

acme.sh

Примечание

  • Активная поддержка для Debian/Ubuntu.
  • Поддержка FreeBSD является экспериментальной. Я тестирую только 10.2 (но это может работать и на других версиях).

Зависимости

Смотрите: requirements.yml.

Если вам нужно разрабатывать эту роль локально на Vagrant

Перед использованием vagrant выполните один раз:

ansible-galaxy install -p ./tests/ HanXHX.php,master

Если вам нужно разрабатывать эту роль локально с помощью molecule

Проверьте доступные сценарии в директории molecule.

С сценарием debian-12:

molecule -v -c molecule/_shared/base.yml verify -s debian-12

Пример Playbook

Смотрите tests/test.yml.

Лицензия

GPLv2

Донаты

Если этот код помог вам или если вы использовали его для своих проектов, не стесняйтесь угостить меня: пивом

  • Bitcoin: 1BQwhBeszzWbUTyK4aUyq3SRg7rBSHcEQn
  • Ethereum: 63abe6b2648fd892816d87a31e3d9d4365a737b5
  • Litecoin: LeNDw34zQLX84VvhCGADNvHMEgb5QyFXyD
  • Monero: 45wbf7VdQAZS5EWUrPhen7Wo4hy7Pa7c7ZBdaWQSRowtd3CZ5vpVw5nTPphTuqVQrnYZC72FXDYyfP31uJmfSQ6qRXFy3bQ

Нет криптовалют? :star: проект также является способом сказать спасибо! :sunglasses:

Информация об авторе

Установить
ansible-galaxy install HanXHX/ansible-nginx
Лицензия
gpl-2.0
Загрузки
6043
Владелец
CEO/CTO/SRE triplestack.fr / daemonit.com