nginx_docker
Помощник обратного прокси Nginx
Сервер обратного прокси NGINX
Роль протестирована на Ubuntu с установленным Docker через мою роль bsmeding.docker на дистрибутивах Linux.
Ранее использовался в качестве фронтенда при развертывании контейнеров Docker на платформах.
Стандартный образ берется с Linuxserver: https://docs.linuxserver.io/images/docker-nginx
На данный момент доступен ограниченный набор параметров конфигурации. Они будут добавлены позже.
Конфигурация обратного прокси
Для каждого контейнера (или другого сервиса/сервера) вы можете добавить конфигурацию прокси с переменной nginx__proxy_confs_subdomain
. Если вы пересылаете запросы к контейнерам, подключите их к одной и той же сети Docker для удобства разрешения имен и безопасности.
Этот пример будет перенаправлять входящие запросы на dash.example.com
на порт 80 к контейнеру с именем dashboard
на порт 9090, порт 80 (http):
nginx__proxy_confs_subdomain:
- server_name: dash.example.com
listen: 80
enable_ldap: false
enable_authelia: false
default_upstream_proto: http
default_upstream_url: dashboard
default_upstream_port: 9090
Файлы сайта
Если вы хотите скопировать директорию сайта, поместите ее в /files/nginx/sites/<site_directory>
или /files/nginx/<inventory_hostname>/sites/<site_directory>
, если вы развертываете несколько серверов с разными сайтами.
Файлы конфигурации сайта
Если вы хотите, чтобы конкретные файлы конфигурации сайта были скопированы, поместите их в директорию вашего плейбука /files/nginx/site-confs/
. Они должны иметь формат файла конфигурации сайта Nginx <site.conf>.
Или в /files/nginx/<inventory_hostname>/site-confs/
для отдельных конфигураций хостов.
https / ssl / Сертификат
Если вам нужны сертификаты, поместите их в директорию вашего плейбука под files/nginx/certs/
, назвав их как website_url.crt
и website_url.key
.
Если файл ключа защищен паролем, добавьте это в переменную поддомена, чтобы она могла быть защищена ansible-vault.
nginx__proxy_confs_subdomain:
- server_name: dash.example.com
listen: 80
listen_https: 443 # необходимо включить https
cert_key_passphrase: 'sbsta261da' # пример пароля для файла cert.key, если установлен. В противном случае не устанавливайте эту переменную
enable_ldap: false
enable_authelia: false
default_upstream_proto: http
default_upstream_url: dashboard
default_upstream_port: 9090
Manage and run the Nginx container from Linuxserver(default).
ansible-galaxy install bsmeding/ansible_role_nginx_docker