passenger_nginx

Passenger NGINX

CI

Роль 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 }};

Лицензия

MIT

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

Эта роль была создана Эриком Мадалем и Глаубером Батистой во время работы в JobScore Inc.

О проекте

Ansible Role for installing Passenger and NGINX for Ruby apps

Установить
ansible-galaxy install jobscore/ansible-role-passenger-nginx
Лицензия
mit
Загрузки
2482
Владелец