nekeal.nginx
Ansible Role: Nginx
注意: NGINX, Inc. の公式 NGINX Ansible role の利用を検討してください。
RedHat/CentOS、Debian/Ubuntu、Arch Linux、FreeBSD、および OpenBSD サーバーに Nginx をインストールします。
このロールは Nginx yum リポジトリ(RedHatベースのシステム)、apt(Debianベースのシステム)、pacman(Arch Linux)、pkgng(FreeBSD)、または pkg_add(OpenBSD)から最新の Nginx をインストールし、設定します。このロールで Nginx をインストールした後は、特定のウェブサイト用の設定を定義するために、自分自身の [virtualhost].conf ファイルを /etc/nginx/conf.d/
内に追加する必要があります。
要件
特になし。
ロール変数
以下に利用可能な変数とデフォルト値を示します(defaults/main.yml
を参照):
nginx_listen_ipv6
: true- IPv6のリッスン設定(このロールによって管理されるすべてのvhostに適用されます)。
nginx_selfsigned_certificate_directory
: /etc/nginx/sslnginx_selfsigned_certificate_privkey
: "{{ nginx_selfsigned_certificate_directory }}/privkey.pem"nginx_selfsigned_certificate_fullchain
: "{{ nginx_selfsigned_certificate_directory }}/fullchain.pem"nginx_selfsigned_certificate_csr
: "{{ nginx_selfsigned_certificate_directory }}/cert.csr"
自己署名証明書を作成する場所を定義する変数です。この証明書は catchall-vhost
で使用され、nginx-vhost
設定の不足している証明書の代わりとしても使用されます。
nginx_copy_missing_certs
: yes- vhost に対して自己署名証明書をコピーするかどうかを定義します。
nginx_vhosts
: []- Nginx のバーチャルホスト用の vhost 定義(サーバーブロック)のリストです。各エントリは、
name
で指定された別の設定ファイルを作成します。空のままにすると、自分のコア設定が必要です。
- Nginx のバーチャルホスト用の vhost 定義(サーバーブロック)のリストです。各エントリは、
以下は vhost の例です:
nginx_vhosts:
- name: localhost-django
server_names:
- "localhost"
upstreams:
- name: local
server: localhost:8000
template: django-vhost.j2
enable_https: true
static_root: /var/www/static/
media_root: /var/www/media/
この例では、指定されたパスに証明書が存在しない場合、自己署名証明書のディレクトリからコピーされます。これにより Nginx は正常に起動しますが、有効な証明書を提供することが推奨されます。
nginx_remove_default_vhost
: false- Nginx に提供される 'default' バーチャルホスト設定を削除するかどうかを決定します。
nginx_user
: "nginx"- Nginx が動作するユーザー。RedHat では
nginx
、Debian ではwww-data
、FreeBSD および OpenBSD ではwww
がデフォルトです。
- Nginx が動作するユーザー。RedHat では
nginx_worker_processes
: "{{ ansible_processor_vcpus|default(ansible_processor_count) }}"- 使用するコア数に基づく労働者プロセスの設定。
nginx_error_log
: "/var/log/nginx/error.log warn"nginx_access_log
: "/var/log/nginx/access.log main buffer=16k"- デフォルトのエラーログとアクセスログの設定です。
nginx_client_max_body_size
: "64m"- アップロード可能な最大ファイルサイズを決定します。
設定テンプレートのオーバーライド
もし変数でカスタマイズできない場合、バーチャルホスト設定ファイルや nginx.conf
ファイルを生成するために使用されるテンプレートをオーバーライドできます。
nginx_conf_template: "nginx.conf.j2"
nginx_catchall_template: "default-catchall.j2"
nginx_vhost_template: "vhost.j2"
例: Nginx 設定で gzip を設定
nginx_conf_template
を指定のテンプレートファイルに設定してください。
nginx_conf_template: "{{ playbook_dir }}/templates/nginx.conf.j2"
依存関係
なし。
例 Playbook
- hosts: server
roles:
- { role: nekeal.nginx }
ライセンス
MIT / BSD
著者情報
このロールは 2014 年に Jeff Geerling によって作成されました。