Im heutigen Teil dieser Reihe, fügen wir den ausstehenden Code zur Konfiguration von Nginx als Webserver für Icinga Web 2 hinzu. Neben den benötigten Nginx-Ressources, vor allem der Umleitung auf den PHP-FPM, ist darauf zu achten, dass Nginx vor der Klasse icingaweb2 und damit vor dem Paket icingaweb2 abzuarbeiten ist. Wird dies nich beachtet installiert das icingaweb2-Paket automatisch den Apache als Abhängigkeit und man hätte zwei Webserver bei sich auf dem Icinga-2-Server.
Damit das Icinga-Web-2-Modul für seine Konfigurationsdateien den korrekten Benutzer verwenden kann, ziehen wir diesen nach der Abarbeitung der Klasse nginx aus dessen Modul.
[ruby] […]
if $web_server == ’nginx‘ {
#
# Nginx
#
$manage_package = true
Class[’nginx‘]
-> Class[‚icingaweb2‘]
class { ‚::nginx‘:
manage_repo => false,
server_purge => true,
confd_purge => true,
}
$web_conf_user = $::nginx::daemon_user
nginx::resource::server { ‚icingaweb2‘:
server_name => [ ‚localhost‘ ],
ssl => false,
index_files => [],
use_default_location => false,
}
nginx::resource::location { ‚icingaweb2‘:
location => ‚~ ^/icingaweb2(.+)?‘,
location_alias => ‚/usr/share/icingaweb2/public‘,
try_files => [‚$1‘, ‚$uri‘, ‚$uri/‘, ‚/icingaweb2/index.php$is_args$args‘],
index_files => [‚index.php‘],
server => ‚icingaweb2‘,
ssl => false,
}
nginx::resource::location { ‚icingaweb2_index‘:
location => ‚~ ^/icingaweb2/index\.php(.*)$‘,
server => ‚icingaweb2‘,
ssl => false,
index_files => [],
fastcgi => ‚127.0.0.1:9000‘,
fastcgi_index => ‚index.php‘,
fastcgi_param => {
‚SCRIPT_FILENAME‘ => ‚/usr/share/icingaweb2/public/index.php‘,
‚ICINGAWEB_CONFIGDIR‘ => ‚/etc/icingaweb2‘,
‚REMOTE_USER‘ => ‚$remote_user‘,
},
}
} else {
[…][/ruby]
Beim Nginx selbst werden alle von der Standard-Installation kommenden virtuellen Hosts (server_purge => true) und sonstigen Konfigurationsdateien entfernt. Der Artikel der kommenden Woche schließt diesen Abschnitt über eine komplexere Konfiguration vorerst ab. Dort wird dann der noch fehlende Code präsentiert, der einen Apache-Webserver zum Ausliefern von Icinga Web 2 verwendet.
