6 Commits
1.3.0 ... 1.3.1

Author SHA1 Message Date
Emilien Mantel
a2e6e98436 Add new feature: nginx_fastcgi_fix_realpath 2016-08-30 17:14:34 +02:00
E Mantel
fc44b704cf Merge pull request #22 from HanXHX/vhost_state
Vhost state
2016-08-30 12:28:44 +02:00
Emilien Mantel
cf662acdd7 Fix condition when creating vhosts 2016-08-30 11:18:14 +02:00
Emilien Mantel
34c8d1926f Vhost state (closes #19) 2016-08-30 11:06:38 +02:00
Emilien Mantel
634d88874f Backward compatibility with nginx_php variable 2016-08-30 10:52:28 +02:00
Emilien Mantel
5e254331c4 manage php upstream version (styles) on vhost 2016-08-26 12:14:54 +02:00
8 changed files with 31 additions and 14 deletions

View File

@@ -40,6 +40,7 @@ FreeBSD:
- `nginx_resolver`: list of DNS resolver (default: OpenDNS) - `nginx_resolver`: list of DNS resolver (default: OpenDNS)
- `nginx_error_log_level`: default log level - `nginx_error_log_level`: default log level
- `nginx_auto_config_httpv2`: boolean, auto configure HTTP2 where possible - `nginx_auto_config_httpv2`: boolean, auto configure HTTP2 where possible
- `nginx_fastcgi_fix_realpath`: boolean, use realpath for fastcgi (fix problems with symlinks and PHP opcache)
### Nginx Configuration ### Nginx Configuration

View File

@@ -18,6 +18,7 @@ nginx_error_log_level: 'warn' # http://nginx.org/en/docs/ngx_core_module.html#er
nginx_auto_config_httpv2: true nginx_auto_config_httpv2: true
nginx_default_vhost: null nginx_default_vhost: null
nginx_default_vhost_ssl: null nginx_default_vhost_ssl: null
nginx_fastcgi_fix_realpath: true
# #
# Nginx directories # Nginx directories

View File

@@ -11,8 +11,7 @@ Common
- `name`: (M) Domain or list of domain used. - `name`: (M) Domain or list of domain used.
- `template`: (D) template used to create vhost. Optional if you set `delete` to true or using `redirect_tor`. - `template`: (D) template used to create vhost. Optional if you set `delete` to true or using `redirect_tor`.
- `filename`: (O) Specify filename in /etc/nginx/sites-*. Do NOT specify default (reserved keyword). - `filename`: (O) Specify filename in /etc/nginx/sites-*. Do NOT specify default (reserved keyword).
- `enable`: (O) Enable the vhost (default is true) - `state`: (O) Vhost status. Can be "present" (default), "absent" and "disabled".
- `delete`: (O) Delete the vhost (default is false)
- `redirect_from`: (O) Domain list to redirect to the first `name`. You can use this key to redirect non-www to www - `redirect_from`: (O) Domain list to redirect to the first `name`. You can use this key to redirect non-www to www
- `redirect_to`: (O) Redirect all requests to this domain. Please set scheme (http:// or https:// or $sheme). - `redirect_to`: (O) Redirect all requests to this domain. Please set scheme (http:// or https:// or $sheme).
- `headers`: (O) Set additionals header as key/value list. You can append "always" to the value. Show [nginx doc](http://nginx.org/en/docs/http/ngx_http_headers_module.html). - `headers`: (O) Set additionals header as key/value list. You can append "always" to the value. Show [nginx doc](http://nginx.org/en/docs/http/ngx_http_headers_module.html).

View File

@@ -19,3 +19,16 @@
dest="{{ nginx_etc_dir }}/conf.d/custom.conf" dest="{{ nginx_etc_dir }}/conf.d/custom.conf"
notify: reload nginx notify: reload nginx
- name: LINEINFILE | Fix path
lineinfile: >
regexp='{{ item.0.regexp }}'
line='{{ item.0.line }}'
dest='{{ item.1 }}'
with_nested:
-
- regexp: '^fastcgi_param SCRIPT_FILENAME'
line: 'fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;'
- regexp: '^fastcgi_param DOCUMENT_ROOT'
line: 'fastcgi_param DOCUMENT_ROOT $realpath_root;'
- [ '/etc/nginx/fastcgi_params', '/etc/nginx/fastcgi.conf' ]
when: nginx_fastcgi_fix_realpath

View File

@@ -1,5 +1,10 @@
--- ---
- name: SET_FACT | Backward compatibility with old version of this role
set_fact: >
nginx_php56: true
when: nginx_php is defined and nginx_php
- name: TEMPLATE | Deploy PHP upstream to Nginx - name: TEMPLATE | Deploy PHP upstream to Nginx
template: > template: >
src=etc/nginx/upstream/php.conf.j2 src=etc/nginx/upstream/php.conf.j2

View File

@@ -36,7 +36,7 @@
when: > when: >
item.root is not defined and item.root is not defined and
(item.template is defined and item.template not in nginx_templates_no_dir) and (item.template is defined and item.template not in nginx_templates_no_dir) and
(item.delete is not defined or not item.delete) and (item.state is not defined or not item.state != 'absent') and
item.redirect_to is not defined item.redirect_to is not defined
- name: TEMPLATE | Create vhosts - name: TEMPLATE | Create vhosts
@@ -45,13 +45,13 @@
dest={{ nginx_etc_dir }}/sites-available/{{ item.filename | default(item.name if item.name is string else item.name[0]) }} dest={{ nginx_etc_dir }}/sites-available/{{ item.filename | default(item.name if item.name is string else item.name[0]) }}
with_items: "{{ nginx_vhosts }}" with_items: "{{ nginx_vhosts }}"
notify: ['reload nginx', 'restart nginx freebsd'] notify: ['reload nginx', 'restart nginx freebsd']
when: item.delete is not defined or not item.delete when: item.state is not defined or item.state != 'absent'
- name: FILE | Delete vhosts - name: FILE | Delete vhosts
file: path={{ nginx_etc_dir }}/sites-available/{{ item.filename | default(item.name if item.name is string else item.name[0]) }} state=absent file: path={{ nginx_etc_dir }}/sites-available/{{ item.filename | default(item.name if item.name is string else item.name[0]) }} state=absent
with_items: "{{ nginx_vhosts }}" with_items: "{{ nginx_vhosts }}"
notify: ['reload nginx', 'restart nginx freebsd'] notify: ['reload nginx', 'restart nginx freebsd']
when: item.delete is defined and item.delete when: item.state is defined and item.state == 'absent'
- name: FILE | Enable vhosts - name: FILE | Enable vhosts
file: > file: >
@@ -61,15 +61,13 @@
with_items: "{{ nginx_vhosts }}" with_items: "{{ nginx_vhosts }}"
notify: ['reload nginx', 'restart nginx freebsd'] notify: ['reload nginx', 'restart nginx freebsd']
when: > when: >
((item.enable is not defined) or item.state is not defined or item.state == 'present'
(item.enable is defined and item.enable)) and
(item.delete is not defined or not item.delete)
- name: FILE | Disable vhosts - name: FILE | Disable vhosts
file: path={{ nginx_etc_dir}}/sites-enabled/{{ item.filename | default(item.name if item.name is string else item.name[0]) }} state=absent file: path={{ nginx_etc_dir}}/sites-enabled/{{ item.filename | default(item.name if item.name is string else item.name[0]) }} state=absent
with_items: "{{ nginx_vhosts }}" with_items: "{{ nginx_vhosts }}"
notify: ['reload nginx', 'restart nginx freebsd'] notify: ['reload nginx', 'restart nginx freebsd']
when: (item.enable is defined and not item.enable) or (item.delete is defined and item.delete) when: item.state is defined and item.state == 'disabled'
- name: FILE | Delete default vhost when explicitely defined - name: FILE | Delete default vhost when explicitely defined
file: > file: >

View File

@@ -1,9 +1,9 @@
{% extends "_base.j2" %} {% extends "_base.j2" %}
{% macro phpv(version) %} {% macro phpv(version) %}
{% if version == 56 %} {% if version == 56 or version == "5.6" %}
{{ nginx_upstream_php56 -}} {{ nginx_upstream_php56 -}}
{% elif version == 70 %} {% elif version == 70 or version == "7.0" %}
{{ nginx_upstream_php70 -}} {{ nginx_upstream_php70 -}}
{% else %} {% else %}
{# Hack... define another upstream #} {# Hack... define another upstream #}

View File

@@ -165,7 +165,7 @@
headers: headers:
'X-proxyfied': '1' 'X-proxyfied': '1'
- name: 'deleted.local' - name: 'deleted.local'
delete: true state: 'absent'
- name: 'redirect-to.local' - name: 'redirect-to.local'
redirect_to: 'http://test.local' redirect_to: 'http://test.local'
- name: 'backuppc.local' - name: 'backuppc.local'
@@ -220,7 +220,7 @@
- name: -- VERIFY VHOSTS -- - name: -- VERIFY VHOSTS --
command: "curl -H 'Host: {{ item.name if item.name is string else item.name[0] }}' http://127.0.0.1{% if item.listen is defined %}:{{ item.listen[0] }}{% endif %}/" command: "curl -H 'Host: {{ item.name if item.name is string else item.name[0] }}' http://127.0.0.1{% if item.listen is defined %}:{{ item.listen[0] }}{% endif %}/"
with_items: "{{ nginx_vhosts }}" with_items: "{{ nginx_vhosts }}"
when: item.delete is undefined or not item.delete when: item.state is undefined or item.state != "absent"
changed_when: false changed_when: false
- name: -- VERIFY FORBIDDEN -- - name: -- VERIFY FORBIDDEN --
command: "curl -H 'Host: test-php-index.local' http://127.0.0.1/phpinfo.php" command: "curl -H 'Host: test-php-index.local' http://127.0.0.1/phpinfo.php"
@@ -230,7 +230,7 @@
- name: -- VERIFY REDIRECT VHOSTS -- - name: -- VERIFY REDIRECT VHOSTS --
command: "curl -H 'Host: {{ item.redirect_from[0] }}' http://127.0.0.1/" command: "curl -H 'Host: {{ item.redirect_from[0] }}' http://127.0.0.1/"
with_items: "{{ nginx_vhosts }}" with_items: "{{ nginx_vhosts }}"
when: item.redirect_from is defined and (item.delete is undefined or not item.delete) when: item.redirect_from is defined and (item.state is undefined or item.state != "absent")
changed_when: false changed_when: false
register: r register: r
failed_when: r.stdout.find('301 Moved Permanently') == -1 failed_when: r.stdout.find('301 Moved Permanently') == -1