nginx
nginx
Эта роль — это форк с https://github.com/bennojoy/nginx. Она реализует другой способ определения параметров.
Эта роль устанавливает и настраивает веб-сервер nginx. Пользователь может указать любые параметры конфигурации http, которые он хочет применять к своему сайту. Можно добавить любое количество сайтов с конфигурациями на ваш выбор.
Требования
Эта роль требует Ansible версии 1.4 или выше, платформенные требования указаны в файле метаданных.
Переменные Роли
Переменные, которые можно передать этой роли, и их краткое описание:
# Максимальное количество клиентов
nginx_max_clients: 512
# Хэш параметров http. Обратите внимание, что любые
# действительные параметры http для nginx можно добавить здесь.
# (см. документацию nginx для подробностей.)
nginx_http_params:
sendfile: "on"
tcp_nopush: "on"
tcp_nodelay: "on"
keepalive_timeout: "65"
access_log: "/var/log/nginx/access.log"
error_log: "/var/log/nginx/error.log"
# Список хэшей, которые определяют серверы для nginx,
# так же как и параметры http. Здесь можно указать любые
# действительные параметры сервера.
nginx_sites:
- server:
file_name: foo
listen: 8080
server_name: localhost
root: "/tmp/site1"
location:
- name: /
try_files: "$uri $uri/ /index.html"
- name: /images/
try_files: "$uri $uri/ /index.html"
- server:
file_name: bar
listen: 9090
server_name: ansible
root: "/tmp/site2"
location:
- name: /
try_files: "$uri $uri/ /index.html"
- name: /images/
try_files: "$uri $uri/ /index.html"
Примеры
Установить nginx с выбранными HTTP директивами, но без настроенных сайтов:
- hosts: all
roles:
- {role: nginx, nginx_http_params: { sendfile: "on", access_log: "/var/log/nginx/access.log"}, nginx_sites: none }
- hosts: all
roles:
Установить nginx с другими HTTP директивами, чем в предыдущем примере, но без настроенных сайтов:
- hosts: all
roles:
- {role: nginx, nginx_http_params: { tcp_nodelay: "on", error_log: "/var/log/nginx/error.log"}, nginx_sites: none }
- hosts: all
roles:
Примечание: Убедитесь, что переданные HTTP директивы действительны, так как эта роль не проверяет их корректность. См. документацию nginx для подробностей.
Установить nginx и добавить сайт в конфигурацию:
hosts: all
roles:
- role: nginx,
nginx_http_params:
sendfile: "on"
access_log: "/var/log/nginx/access.log"
nginx_sites:
- server:
file_name: bar
listen: 8080
location:
- name: "/" try_files: "$uri $uri/ /index.html"
- name: /images/ try_files: "$uri $uri/ /index.html"
- server:
file_name: bar
listen: 8080
location:
- role: nginx,
nginx_http_params:
sendfile: "on"
access_log: "/var/log/nginx/access.log"
nginx_sites:
Примечание: Каждый добавленный сайт представлен списком хэшей, а сгенерированные конфигурации помещаются в /etc/nginx/sites-available/
и имеют соответствующие символические ссылки из /etc/nginx/sites-enabled/
.
Имя файла для конкретной конфигурации сайта указывается в хэше с ключом "file_name", любые действительные директивы сервера можно добавить в хэш. Для директивы location добавьте ключ "location" с уникальным номером, значение для location — хэш, убедитесь, что они действительны.
Установить Nginx и добавить 2 сайта (другой метод):
- hosts: all
roles:
- role: nginx
nginx_http_params:
sendfile: "on"
access_log: "/var/log/nginx/access.log"
nginx_sites:
- server:
file_name: foo
listen: 8080
server_name: localhost
root: "/tmp/site1"
location:
- name: / try_files: "$uri $uri/ /index.html"
- name: /images/ try_files: "$uri $uri/ /index.html"
- server:
file_name: bar
listen: 9090
server_name: ansible
root: "/tmp/site2"
location:
- name: / try_files: "$uri $uri/ /index.html"
- name: /images/ try_files: "$uri $uri/ /index.html"
- server:
file_name: foo
listen: 8080
server_name: localhost
root: "/tmp/site1"
location:
- role: nginx
nginx_http_params:
sendfile: "on"
access_log: "/var/log/nginx/access.log"
nginx_sites:
- hosts: all
roles:
Зависимости
Нет
Лицензия
BSD
Информация об авторе
Автор оригинальной роли: Бенно Джой Автор форка от Ginsys: Сергей ван Гиндер Achter serge@vanginderachter.be
This ansible role manages installation and configuration of nginx. It can both configure general options, as well as virtual hosts. This role is a fork of https://github.com/bennojoy/nginx and implements a different API for configuring locations within a
ansible-galaxy install ginsys/ansible-role-nginx