jobscore.passenger_nginx

Passenger NGINX

CI

Rubyアプリ用のPassengerとNGINXをインストールするためのAnsibleロール

要件

このロールでは、ターゲットマシンにRubyが既にインストールされていることを期待しています。Rubyのバイナリパスはpassenger_ruby変数で設定できます。

ロール変数

Passenger設定

passenger_app_root: /mnt/app/public

Railsアプリの公開フォルダのパスです。

passenger_app_env: production

PassengerがRailsアプリを実行する際のRAILS_ENVです。

passenger_root: /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini

Passenger設定のルートファイルのパスです。このファイルはこのロールによって管理されていないため、手動で設定を行った場合のみ変更してください。

passenger_ruby: /usr/local/bin/ruby

Rubyバイナリのパスです。

passenger_extra_config: ''

この変数にアプリのPassengerの動作をカスタマイズするための設定を追加できます(mod-http-passenger.conf.j2で使用)。NGINX用のPassengerパラメータについての詳細はこちらで確認できます。

NGINX設定

nginx_server_name: www.example.com

NGINXがHTTPリクエストを受け付けるために使用するサーバー名です。

nginx_user: "www-data"

NGINXがサーバーを実行するために使用するユーザーです。

nginx_extra_config: ''

ルートレベルのnginx.confテンプレートに追加したい設定パラメータをここに追加できます。

nginx_events_extra_config: ''

eventsセクションに追加したい設定パラメータをここに追加できます。

nginx_http_extra_config: ''

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 }};
  }

Passengerアプリ用のNGINX設定です。デフォルトの設定はすべてのアプリに対応しています。動作をカスタマイズしたい場合は、この変数を編集できます。ここでもJinjaテンプレートのように変数を使用できます。

nginx_worker_processes: "auto"
nginx_worker_connections: "768"
nginx_keepalive_timeout: "65"

これらの値は、nginx.confテンプレート内でそれぞれの値を設定するために使用されます。

例プレイブック

- 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

著者情報

このロールは、Eric MagalhãesGlauber BatistaJobScore Incで働いている際に作成されました。

プロジェクトについて

Ansible Role for installing Passenger and NGINX for Ruby apps

インストール
ansible-galaxy install jobscore.passenger_nginx
ライセンス
mit
ダウンロード
6k
所有者