diff --git a/roles/0-DEPRECATED-ROLES/dokuwiki/tasks/enable.yml b/roles/0-DEPRECATED-ROLES/dokuwiki/tasks/enable.yml index 094312866..559ed9f37 100644 --- a/roles/0-DEPRECATED-ROLES/dokuwiki/tasks/enable.yml +++ b/roles/0-DEPRECATED-ROLES/dokuwiki/tasks/enable.yml @@ -30,7 +30,7 @@ - name: Restart 'nginx' systemd service systemd: - name: nginx + name: "{{ nginx_systemd_name }}" state: restarted when: nginx_enabled diff --git a/roles/0-DEPRECATED-ROLES/elgg/tasks/nginx.yml b/roles/0-DEPRECATED-ROLES/elgg/tasks/nginx.yml index 3a4a302d1..db9d5982f 100644 --- a/roles/0-DEPRECATED-ROLES/elgg/tasks/nginx.yml +++ b/roles/0-DEPRECATED-ROLES/elgg/tasks/nginx.yml @@ -12,5 +12,5 @@ - name: Restart 'nginx' systemd service systemd: - name: nginx + name: "{{ nginx_systemd_name }}" state: restarted diff --git a/roles/awstats/tasks/nginx.yml b/roles/awstats/tasks/nginx.yml index 810348fb0..43aa3c88a 100644 --- a/roles/awstats/tasks/nginx.yml +++ b/roles/awstats/tasks/nginx.yml @@ -12,5 +12,5 @@ - name: Restart 'nginx' systemd service systemd: - name: nginx + name: "{{ nginx_systemd_name }}" state: restarted diff --git a/roles/calibre-web/tasks/enable-or-disable.yml b/roles/calibre-web/tasks/enable-or-disable.yml index 493703dc7..2fdf89fda 100644 --- a/roles/calibre-web/tasks/enable-or-disable.yml +++ b/roles/calibre-web/tasks/enable-or-disable.yml @@ -48,5 +48,5 @@ - name: Restart 'nginx' systemd service systemd: - name: nginx + name: "{{ nginx_systemd_name }}" state: restarted diff --git a/roles/cups/tasks/nginx.yml b/roles/cups/tasks/nginx.yml index 886a15c14..8aa75ff47 100644 --- a/roles/cups/tasks/nginx.yml +++ b/roles/cups/tasks/nginx.yml @@ -12,5 +12,5 @@ - name: Restart 'nginx' systemd service systemd: - name: nginx + name: "{{ nginx_systemd_name }}" state: restarted diff --git a/roles/gitea/tasks/enable-or-disable.yml b/roles/gitea/tasks/enable-or-disable.yml index 3401c3fdd..0f1cecf55 100644 --- a/roles/gitea/tasks/enable-or-disable.yml +++ b/roles/gitea/tasks/enable-or-disable.yml @@ -28,5 +28,5 @@ - name: Restart 'nginx' systemd service systemd: - name: nginx + name: "{{ nginx_systemd_name }}" state: restarted diff --git a/roles/internetarchive/tasks/enable-or-disable.yml b/roles/internetarchive/tasks/enable-or-disable.yml index 47cebe214..10a7164b5 100644 --- a/roles/internetarchive/tasks/enable-or-disable.yml +++ b/roles/internetarchive/tasks/enable-or-disable.yml @@ -28,5 +28,5 @@ - name: Restart 'nginx' systemd service systemd: - name: nginx + name: "{{ nginx_systemd_name }}" state: restarted diff --git a/roles/jupyterhub/tasks/enable-or-disable.yml b/roles/jupyterhub/tasks/enable-or-disable.yml index b8a504589..621287930 100644 --- a/roles/jupyterhub/tasks/enable-or-disable.yml +++ b/roles/jupyterhub/tasks/enable-or-disable.yml @@ -29,5 +29,5 @@ - name: Restart 'nginx' systemd service systemd: - name: nginx + name: "{{ nginx_systemd_name }}" state: restarted diff --git a/roles/kiwix/tasks/nginx.yml b/roles/kiwix/tasks/nginx.yml index 0fd9c674a..54a1e7628 100644 --- a/roles/kiwix/tasks/nginx.yml +++ b/roles/kiwix/tasks/nginx.yml @@ -12,5 +12,5 @@ - name: Restart 'nginx' systemd service systemd: - name: nginx + name: "{{ nginx_systemd_name }}" state: restarted diff --git a/roles/kolibri/tasks/enable-or-disable.yml b/roles/kolibri/tasks/enable-or-disable.yml index 8204b3aee..8177f97a1 100644 --- a/roles/kolibri/tasks/enable-or-disable.yml +++ b/roles/kolibri/tasks/enable-or-disable.yml @@ -28,5 +28,5 @@ - name: Restart 'nginx' systemd service systemd: - name: nginx + name: "{{ nginx_systemd_name }}" state: restarted diff --git a/roles/lokole/tasks/nginx.yml b/roles/lokole/tasks/nginx.yml index 9ba756bf8..3de3f2a20 100644 --- a/roles/lokole/tasks/nginx.yml +++ b/roles/lokole/tasks/nginx.yml @@ -12,5 +12,5 @@ - name: Restart 'nginx' systemd service systemd: - name: nginx + name: "{{ nginx_systemd_name }}" state: restarted diff --git a/roles/mediawiki/tasks/nginx.yml b/roles/mediawiki/tasks/nginx.yml index 85c4e1429..c4cc5785c 100644 --- a/roles/mediawiki/tasks/nginx.yml +++ b/roles/mediawiki/tasks/nginx.yml @@ -12,5 +12,5 @@ - name: Restart 'nginx' systemd service systemd: - name: nginx + name: "{{ nginx_systemd_name }}" state: restarted diff --git a/roles/moodle/tasks/enable-or-disable.yml b/roles/moodle/tasks/enable-or-disable.yml index 687d6db1e..4306dc02e 100644 --- a/roles/moodle/tasks/enable-or-disable.yml +++ b/roles/moodle/tasks/enable-or-disable.yml @@ -27,5 +27,5 @@ - name: Restart 'nginx' systemd service systemd: - name: nginx + name: "{{ nginx_systemd_name }}" state: restarted diff --git a/roles/munin/tasks/enable-or-disable.yml b/roles/munin/tasks/enable-or-disable.yml index fce74cae5..450de07ff 100644 --- a/roles/munin/tasks/enable-or-disable.yml +++ b/roles/munin/tasks/enable-or-disable.yml @@ -40,5 +40,5 @@ - name: Restart 'nginx' systemd service systemd: - name: nginx + name: "{{ nginx_systemd_name }}" state: restarted diff --git a/roles/nginx/tasks/enable-or-disable.yml b/roles/nginx/tasks/enable-or-disable.yml index 0ef223866..ae028a23f 100644 --- a/roles/nginx/tasks/enable-or-disable.yml +++ b/roles/nginx/tasks/enable-or-disable.yml @@ -25,10 +25,9 @@ # enabled: true # when: apache_installed is defined and apache_enabled # or not nginx_enabled - - name: Enable & (Re)Start 'nginx' systemd service, if nginx_enabled systemd: - name: nginx + name: "{{ nginx_systemd_name }}" daemon_reload: yes enabled: yes state: restarted @@ -36,7 +35,7 @@ - name: Disable & Stop 'nginx' systemd service, if not nginx_enabled systemd: - name: nginx + name: "{{ nginx_systemd_name }}" enabled: no state: stopped when: not nginx_enabled diff --git a/roles/nginx/tasks/install.yml b/roles/nginx/tasks/install.yml index b45920dd1..0aaa3335c 100644 --- a/roles/nginx/tasks/install.yml +++ b/roles/nginx/tasks/install.yml @@ -43,19 +43,72 @@ # append: yes -- name: Remove NGINX default config /etc/nginx/sites-enabled/default +- name: Remove NGINX default config {{ nginx_dir }}/sites-enabled/default file: - path: /etc/nginx/sites-enabled/default + path: "{{ nginx_dir }}/sites-enabled/default" state: absent +# start block +- block: + - name: Insure alternate nginx path is present + file: + path: "{{ item }}" + state: directory + with_items: + - "{{ nginx_conf_dir }}" + - "{{ nginx_dir }}/sites-available" + - "{{ nginx_dir }}/sites-enabled" + + - name: Link {{ nginx_dir }}/ files + file: + src: /etc/nginx/{{ item }} + path: "{{ nginx_dir }}/{{ item }}" + state: link + with_items: + - modules-available + - modules-enabled + - snippets + - fastcgi.conf + - fastcgi_params + - koi-win + - koi-utf + - proxy_params + - scgi_params + - uwsgi_params + - win-utf + + - name: Grab stock unit file + copy: + force: yes + src: /lib/systemd/system/nginx.service + dest: /etc/systemd/system/{{ nginx_systemd_name }}.service + + - name: shove {{ nginx_dir }}/nginx.conf into unit file + command: sed -i 's|/usr/sbin/nginx|/usr/sbin/nginx -c {{ nginx_dir }}/nginx.conf|g' /etc/systemd/system/{{ nginx_systemd_name }}.service +# lineinfile: +# path: /etc/systemd/system/nginx.service +# state: present +# regexp: "{{ item.regexp }}" +# line: "{{ item.line }}" +# with_items: +# - { regexp: '^ExecStartPre=/usr/sbin/nginx' , line: 'ExecStartPre=/usr/sbin/nginx -c {{ nginx_dir }}/nginx.conf' } +# - { regexp: '^ExecStart=/usr/sbin/nginx', line: 'ExecStart=/usr/sbin/nginx -c {{ nginx_dir }}/nginx.conf' } +# - { regexp: '^ExecReload=/usr/sbin/nginx', line: 'ExecReload=/usr/sbin/nginx -c {{ nginx_dir }}/nginx.conf' } + + - name: Alter /run/nginx.pid to be /run/{{ nginx_systemd_name }}.pid in unit file. + command: sed -i 's|/run/nginx.pid|/run/{{ nginx_systemd_name }}.pid|g' /etc/systemd/system/{{ nginx_systemd_name }}.service + +# end block + when: nginx_systemd_name != "nginx" or nginx_dir != "/etc/nginx" + - name: 'Install 3 (of 5) files from template: /etc/nginx/server.conf, /etc/nginx/nginx.conf, /etc/nginx/mime.types' template: src: "{{ item.src }}" dest: "{{ item.dest }}" with_items: - - { src: 'server.conf.j2', dest: '/etc/nginx/server.conf' } - - { src: 'nginx.conf.j2', dest: '/etc/nginx/nginx.conf' } - - { src: 'mime.types.j2', dest: '/etc/nginx/mime.types' } + - { src: 'server.conf.j2', dest: '{{ nginx_dir }}/server.conf' } + - { src: 'nginx.conf.j2', dest: '{{ nginx_dir }}/nginx.conf' } + - { src: 'mime.types.j2', dest: '{{ nginx_dir }}/mime.types' } # - { src: 'ports.conf', dest: '/etc/{{ apache_service }}/ports.conf' } # 2021-08-09: Restored from enable-or-disable.yml then moved to roles/pbx/tasks/apache.yml # - { src: 'iiab.conf.j2', dest: "{{ nginx_conf_dir }}/iiab.conf" } # Moved into homepage.yml, invoked later by roles/www_options/tasks/main.yml (see below!) @@ -63,12 +116,26 @@ msg: roles/nginx/tasks/homepage.yml will run LATER (invoked by roles/www_options/tasks/main.yml) SO THAT NGINX CAN REDIRECT http://box TO http://box{{ iiab_home_url }} (based on var iiab_home_url) # - include_tasks: roles/nginx/tasks/homepage.yml +#ubuntu@box:/opt/iiab/iiab$ grep -r 'fastcgi_pass' roles +#roles/awstats/templates/awstats-nginx.conf: fastcgi_pass php; +#roles/nextcloud/templates/nextcloud-nginx.conf.j2: fastcgi_pass php; +#roles/moodle/templates/moodle-nginx.conf.j2: fastcgi_pass php; +#roles/osm-vector-maps/templates/osm-vector-maps-nginx.conf.j2: fastcgi_pass php; +#roles/pbx/templates/freepbx-nginx.conf.j2: fastcgi_pass unix:/run/php/php-asterisk.sock; +#roles/mediawiki/templates/mediawiki-nginx.conf.j2: fastcgi_pass php; # or whatever port your PHP-FPM listens on +#roles/mediawiki/templates/mediawiki-nginx.conf.j2:# fastcgi_pass 127.0.0.1:9000; # or whatever port your PHP-FPM listens on +#roles/wordpress/templates/wordpress-nginx.conf.j2: fastcgi_pass php; +#roles/wordpress/templates/wordpress-nginx.conf.j2: fastcgi_pass php; +#roles/nginx/templates/admin-console-nginx.conf.unused: fastcgi_pass php; + +# should really be 'state: stopped' 'enabled: no' and each role should enable and restart as needed to keep system resources in check when +# php{{ php_version }}-fpm is not required by any selected roles. + - name: Restart php{{ php_version }}-fpm systemd service systemd: name: "php{{ php_version }}-fpm" state: restarted - # RECORD NGINX AS INSTALLED - name: Record (final) disk space used diff --git a/roles/nginx/templates/nginx.conf.j2 b/roles/nginx/templates/nginx.conf.j2 index 5e440a9ff..bd2b18936 100644 --- a/roles/nginx/templates/nginx.conf.j2 +++ b/roles/nginx/templates/nginx.conf.j2 @@ -4,8 +4,8 @@ user www-data; worker_processes auto; -pid /run/nginx.pid; -include /etc/nginx/modules-enabled/*.conf; +pid /run/{{ nginx_systemd_name }}.pid; +include {{ nginx_dir }}/modules-enabled/*.conf; events { worker_connections 768; @@ -29,7 +29,7 @@ http { server_names_hash_bucket_size 64; # server_name_in_redirect off; - include /etc/nginx/mime.types; + include {{ nginx_dir }}/mime.types; default_type text/html; ## @@ -91,10 +91,10 @@ http { ## # include a server file which in turn includes conf.d/* - include /etc/nginx/server.conf; + include {{ nginx_dir }}/server.conf; # include other sites - include /etc/nginx/sites-enabled/*.conf; + include {{ nginx_dir }}/sites-enabled/*.conf; # define the upstream backend fastcgi for php upstream php { diff --git a/roles/nginx/templates/server.conf.j2 b/roles/nginx/templates/server.conf.j2 index 9b6aeaaba..409663ab7 100644 --- a/roles/nginx/templates/server.conf.j2 +++ b/roles/nginx/templates/server.conf.j2 @@ -3,7 +3,7 @@ server { server_name $hostname; # e.g. box.lan, set dynamically when NGINX starts #server_name {{ iiab_hostname }}.{{ iiab_domain }}; #server_name {{ iiab_hostname }}; - listen 80; + listen {{ nginx_port }}; index index.php index.html index.htm; @@ -19,6 +19,7 @@ server { # let individual services drop location blocks in conf.d include {{ nginx_conf_dir }}/*; + # why is everything below here even present? location ~ .*\.php$ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; diff --git a/roles/nodered/tasks/enable-or-disable.yml b/roles/nodered/tasks/enable-or-disable.yml index 87a1c8d2a..5893d30e0 100644 --- a/roles/nodered/tasks/enable-or-disable.yml +++ b/roles/nodered/tasks/enable-or-disable.yml @@ -28,5 +28,5 @@ - name: Restart 'nginx' systemd service systemd: - name: nginx + name: "{{ nginx_systemd_name }}" state: restarted diff --git a/roles/osm-vector-maps/tasks/nginx.yml b/roles/osm-vector-maps/tasks/nginx.yml index 15c281db8..b16031320 100644 --- a/roles/osm-vector-maps/tasks/nginx.yml +++ b/roles/osm-vector-maps/tasks/nginx.yml @@ -12,5 +12,5 @@ - name: Reload 'nginx' systemd service systemd: - name: nginx + name: "{{ nginx_systemd_name }}" state: reloaded diff --git a/roles/pbx/tasks/enable-or-disable.yml b/roles/pbx/tasks/enable-or-disable.yml index 6b1639a37..b7b0c4141 100644 --- a/roles/pbx/tasks/enable-or-disable.yml +++ b/roles/pbx/tasks/enable-or-disable.yml @@ -97,7 +97,7 @@ - name: Restart 'nginx' systemd service systemd: - name: nginx + name: "{{ nginx_systemd_name }}" state: restarted diff --git a/roles/sugarizer/tasks/enable-or-disable.yml b/roles/sugarizer/tasks/enable-or-disable.yml index 8abccd61b..da72d935d 100644 --- a/roles/sugarizer/tasks/enable-or-disable.yml +++ b/roles/sugarizer/tasks/enable-or-disable.yml @@ -28,5 +28,5 @@ - name: Restart 'nginx' systemd service systemd: - name: nginx + name: "{{ nginx_systemd_name }}" state: restarted diff --git a/roles/usb_lib/tasks/nginx.yml b/roles/usb_lib/tasks/nginx.yml index 7e572142a..7cb0d2289 100644 --- a/roles/usb_lib/tasks/nginx.yml +++ b/roles/usb_lib/tasks/nginx.yml @@ -30,5 +30,5 @@ - name: Restart 'nginx' systemd service systemd: - name: nginx + name: "{{ nginx_systemd_name }}" state: restarted diff --git a/roles/wordpress/tasks/nginx.yml b/roles/wordpress/tasks/nginx.yml index c55d1223e..66c1e6277 100644 --- a/roles/wordpress/tasks/nginx.yml +++ b/roles/wordpress/tasks/nginx.yml @@ -12,5 +12,5 @@ - name: Restart 'nginx' systemd service systemd: - name: nginx + name: "{{ nginx_systemd_name }}" state: restarted diff --git a/roles/www_options/tasks/main.yml b/roles/www_options/tasks/main.yml index b26256239..a5bd68b9c 100644 --- a/roles/www_options/tasks/main.yml +++ b/roles/www_options/tasks/main.yml @@ -125,7 +125,7 @@ - name: (Re)Start 'nginx' systemd service, if nginx_enabled systemd: - name: nginx + name: "{{ nginx_systemd_name }}" state: restarted when: nginx_enabled diff --git a/vars/default_vars.yml b/vars/default_vars.yml index bcb038a53..c6d1ee0a8 100644 --- a/vars/default_vars.yml +++ b/vars/default_vars.yml @@ -272,8 +272,10 @@ nginx_install: True nginx_enabled: True nginx_port: 80 nginx_interface: 0.0.0.0 -nginx_conf_dir: /etc/nginx/conf.d +nginx_dir: /etc/nginx +nginx_conf_dir: "{{ nginx_dir }}/conf.d" nginx_log_dir: /var/log/nginx +nginx_systemd_name: nginx # SEE BELOW: nginx_high_php_limits, apache_allow_sudo # roles/www_base runs here (mandatory)