jobscore.passenger_nginx
Passenger NGINX
用于安装 Ruby 应用程序的 Passenger 和 NGINX 的 Ansible 角色
要求
此角色要求目标机器上已经安装了 Ruby,可以使用 passenger_ruby
变量配置 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 设置时才应更改。
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.conf 模板的其他配置参数。
nginx_http_extra_config: ''
你可能想要添加到 http 部分的 nginx.conf 模板的其他配置参数。
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 }};
许可证
作者信息
此角色由 Eric Magalhães 和 Glauber Batista 在为 JobScore Inc 工作时创建。