4.1 KiB
4.1 KiB
Nginx for Debian Ansible role
Install and configure Nginx on Debian.
SSL management will come later.
Requirements
None.
Role Variables
nginx_apt_package
: APT nginx package (try: apt-cache search ^nginx)nginx_root
: root directory where you want to have your filesnginx_log_dir
: log directory (if you change it, don't forget to change logrotate config)nginx_ssl_dir
: directory where you install your SSL/TLS keysnginx_resolver
: list of DNS resolver (default: OpenDNS)nginx_error_log_level
: default log levelnginx_dh_length
: DH key length (default is 2048)
PHP
nginx_php
: boolean if you need to preconfigure PHP (default: false)nginx_php_sockets
: list of //sockets//
You should see Nginx upstream module doc.
Socket:
unix_socket
host
port
weight
max_fails
fail_timeout
Nginx Configuration
nginx_user
nginx_worker_processes
nginx_events
: key/value in events blocknginx_http
: key/value in http blocknginx_pid
: daemon pid file
Vhost management
You can see many examples in: tests/test.yml.
nginx_vhosts
: List of dict. A vhost has few keys. See bellow.
Common
name
: (M) Domain or list of domain used.template
: (D) template used to create vhost. Optional if you setdelete
to true or usingredirect_tor
.enable
: (O) Enable the vhost (default is true)delete
: (O) Delete the vhost (default is false)redirect_from
: (O) Domain list to redirect to the firstname
. You can use this key to redirect non-www to wwwredirect_to
: (O) Redirect (302) all requests to this domain. Please set scheme (http:// or https:// or $sheme).location
: (O) Add new custom locations (it does not overwrite!)more
: (O) Add more custom infos.upstream_params
: (O) Add upstream params (useful when you want to pass variables to PHP)override_try_files
: (O) overrides default try_files defined in templatemanage_local_content
: (O) Boolean. Set to false if you don't want to manage local content (images, css...). This option is useless if you use proxytemplate
(O): Optional (M): Mandatory (D): Depends other keys...
Templates
base
: static templatedokuwiki
phalcon
: Phalcon PHP Frameworkphp
: PHP base template. Can work with many frameworks/toolsphp_index
: Same as above. But you can only run index.phpproxy
wordpress
Templates works as parent-child.
About proxy template
Proxy template allow you to use Nginx as reverse proxy. Usefull when you have application serveur such as Redmine, Jenkins...
You have many key added to vhost key:
upstream_name
: (O) upstream name used to pass proxyproxy_params
: (M) list of raw params passed to the vhost
(O) : Optional (M) : Mandatory
Upstream management
nginx_upstreams
: List of dict. An upstream has few keys. See bellow.
Note: Few params are unavailable on old Nginx version. But this role don't put it if your version is too old!
Upstream params
name
: upstream name. Can be use in vhost with proxy_pass http://upstream_nameparams
: list of param (hash, zone...)servers
: each upstream MUST have at least 1 server
Server params
You must set a path
. For example: 192.168.0.50:8080 or unix:/tmp/my.sock.
All this params are optional. You should see Nginx upstream doc.
weight
max
fails`fail
timeout`backup
down
route
slow
start`
Dependencies
None
Example Playbook
- hosts: servers
roles:
- { role: HanXHX.nginx }
License
GPLv2
Author Information
- Twitter: https://twitter.com/hanxhx