passenger_nginx
Passenger NGINX
Роль Ansible для установки Passenger и NGINX для Ruby приложений
Требования
Эта роль требует, чтобы Ruby уже была установлена на целевой машине. Путь к исполняемому файлу Ruby можно настроить с помощью переменной passenger_ruby
.
Переменные роли
Настройки Passenger
passenger_app_root: /mnt/app/public
Путь к публичной папке вашего Rails приложения
passenger_app_env: production
RAILS_ENV, в которой будет работать ваш Rails приложение
passenger_root: /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
Путь к файлу конфигурации Passenger, этот файл не управляется этой ролью, поэтому изменяйте его только в случае, если вы настраивали Passenger вручную.
passenger_ruby: /usr/local/bin/ruby
Путь к исполняемому файлу Ruby
passenger_extra_config: ''
В этой переменной вы можете добавить или настроить поведение Passenger для ваших приложений (используется в mod-http-passenger.conf.j2). Более подробную информацию о параметрах Passenger для NGINX можно найти здесь.
Настройки NGINX
nginx_server_name: www.example.com
Имя сервера, которое NGINX будет использовать для прослушивания HTTP запросов
nginx_user: "www-data"
Пользователь, от имени которого будет работать NGINX
nginx_extra_config: ''
Дополнительные параметры конфигурации, которые вы можете добавить в шаблон nginx.conf на корневом уровне.
nginx_events_extra_config: ''
Дополнительные параметры конфигурации, которые вы можете добавить в шаблон nginx.conf в разделе events.
nginx_http_extra_config: ''
Дополнительные параметры конфигурации, которые вы можете добавить в шаблон nginx.conf в разделе http.
nginx_vhost_config: |
server {
listen 80 default_server;
server_name {{ nginx_server_name }};
passenger_enabled on;
passenger_app_env {{ passenger_app_env }};
root {{ passenger_app_root }};
}
Конфигурация NGINX для приложения Passenger, базовая конфигурация подходит для всех приложений. Если вы хотите добавить или настроить поведение, вы можете изменить эту переменную. Здесь можно использовать переменные так же, как в Jinja шаблонах.
nginx_worker_processes: "auto"
nginx_worker_connections: "768"
nginx_keepalive_timeout: "65"
Эти значения используются для настройки соответствующих параметров в шаблоне nginx.conf.
Примеры Playbook
- hosts: servers
roles:
- role: jobscore.ruby
- role: jobscore.passenger_nginx
- hosts: servers
pre_tasks:
- apt:
name: ruby-full
state: present
roles:
- role: jobscore.passenger_nginx
nginx_server_name: www.example.com
passenger_extra_config: |
passenger_max_pool_size 6;
passenger_min_instances 6;
passenger_pre_start {{ nginx_server_name }};
Лицензия
Информация об авторе
Эта роль была создана Эриком Мадалем и Глаубером Батистой во время работы в JobScore Inc.
ansible-galaxy install jobscore/ansible-role-passenger-nginx