marvinpinto.docker-nginx

docker-nginx

ビルドステータス

nginxのDockerコンテナを管理し実行するためのAnsibleロールです。

要件

このロールはUbuntu 14.04でのみテストされています。このロールはAnsibleのdockerモジュールを使用しているため、docker-pydockerの最近のバージョンがインストールされていることを確認する必要があります。

依存関係ロール(geerlingguy.docker)をインストールするために、tests/requirements.ymlを使用します。

また、ansible-galaxy install -r tests/requirements.ymlを使用するか、同じ内容を自分のリポジトリのrequirements.ymlファイルに追加することもできます。

Ansible Galaxyからこのモジュールを'./roles'ディレクトリにインストールします:

ansible-galaxy install marvinpinto.docker-nginx -p ./roles

以下のようにプレイブックで使用します。Dockerがすでに設定されていると仮定します:

- hosts: 'servers'
  roles:
    - role: geerlingguy.docker  # Dockerをインストールするために他のロールを使用することもできますが、Dockerは必要です(上を参照)
    - role: 'marvinpinto.docker-nginx'
      become: yes
      nginx_conf: |
        user root;
        worker_processes 1;

        error_log /var/log/nginx/error.log warn;
        pid /var/run/nginx.pid;

        events {
            worker_connections  1024;
        }

        http {
            include       /etc/nginx/mime.types;
            default_type  application/octet-stream;
            log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                              '$status $body_bytes_sent "$http_referer" '
                              '"$http_user_agent" "$http_x_forwarded_for"';
            access_log  /var/log/nginx/access.log  main;
            sendfile        on;
            keepalive_timeout  65;
            include /etc/nginx/conf.d/*.conf;
        }

上書き可能なロール変数については、defaults/main.ymlを確認してください!Docker自体を設定するためのプレイブックが必要な場合は、marvinpinto.docker Galaxyロールを参照してください。

設定が期待される項目

  • nginx_reverse_proxy_proxies: リバースプロキシの設定リスト;各設定には以下の変数が必要です
    • nginx_reverse_proxy_backend_name: 文字列、nginx設定内でバックエンドを参照するための名前
    • nginx_reverse_proxy_domains: プロキシされる公開ドメインのリスト
    • nginx_reverse_proxy_backends: バックエンドサーバーのリスト(ポートを含む)およびnginx設定ファイルのupstreamコンテキストでのserverの他の有効なパラメータ
    • nginx_reverse_proxy_config_name: プロキシファイルに使用する名前('.conf'拡張子を含めないでください、ロールがこれを追加します)

例プレイブック

---
# ファイル group_vars/nginx_docker_proxy

nginx_reverse_proxy_proxies:
  - config_name: app1proxy
    backend_name: my-backend-1
    backends:
      - localhost:1880 weight=2
      - localhost:1881
    domains:
      - app1.192.168.88.10.xip.io
    locations:
      - /path/   # サイトがbackend-name/path/にホストされている場合
    root_redirect_location: /path/  # サイトがbackend-name/path/にホストされている場合にデフォルトでこのサイトにリダイレクトする

  - config_name: app2proxy
    backend_name: my-backend-2
    backends:
      - localhost:1882
      - localhost:1883 backup  # バックアップとして機能し、プライマリが利用できない場合にのみnginxがトラフィックを転送する。
    domains:
      - app2.192.168.88.10.xip.io
    balancer_config: least_conn; # 設定が壊れないように最後にセミコロンを追加することが重要です;

ライセンス

MIT

著者情報

  • マーヴィン・ピント

コラボレーター

  • パブロ・エスティガリビア (pablodav at gmail)

さらなるドキュメント

https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/#taxing-rewrites

http://nginx.org/en/docs/http/ngx_http_upstream_module.html

nginx設定に関する注意事項

バックエンドを追加する際、DNSを使用して追加する場合は、nginxを開始する前にサーバーがDNS名を解決できることを確認してください。 nginxがDNS名を解決できない場合、起動しません。

開発者

このロールの自動テストに協力してください: https://github.com/CoffeeITWorks/ansible-generic-help/blob/master/Developers.md

プロジェクトについて

Ansible role to manage and run the nginx docker container.

インストール
ansible-galaxy install marvinpinto.docker-nginx
ライセンス
mit
ダウンロード
375
所有者
Computer nerd.