#> apt-get install nginx-full uwsgi-plugin-psgi
This document assumes Thruk is installed from official .deb packages from thruk.org.
Install the required packages:
#> apt-get install nginx-full uwsgi-plugin-psgi
Put the example configuration file in /etc/nginx/sites-available/thruk and enable it with:
#> ln -s /etc/nginx/sites-available/thruk /etc/nginx/sites-enabled/thruk
Replace SSL-Certs with real ones and use htpasswd to create /etc/nginx/users.
Example configuration:
server { server_name thruk.example.com; # SSL configuration listen 443 ssl; listen [::]:443 ssl; ssl_certificate /etc/nginx/ssl/thruk.example.com.crt; ssl_certificate_key /etc/nginx/ssl/thruk.example.com.key; root /usr/share/thruk/root; location /thruk/documentation.html { alias /usr/share/thruk/root/thruk/documentation.html; } location ~ ^/thruk/plugins/(.*?)/(.*)$ { alias /etc/thruk/plugins/plugins-enabled/$1/root/$2; } location /thruk/themes/ { alias /etc/thruk/themes/themes-enabled/; } index index.cgi index.html; location @thruk { uwsgi_pass 127.0.0.1:4040; uwsgi_param REMOTE_USER $remote_user; uwsgi_modifier1 5; include uwsgi_params; } location / { auth_basic "Thruk server authentication"; auth_basic_user_file /etc/nginx/users; # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri @thruk; } location /thruk/cgi-bin/remote.cgi { try_files $uri @thruk; } location /thruk/r/ { try_files $uri @thruk; } }
Put the ini file in /etc/uwsgi/apps-available/thruk.ini and enable it with:
#> ln -s /etc/uwsgi/apps-available/thruk.ini /etc/uwsgi/apps-enabled/thruk.ini
[uwsgi] plugin = perl #or psgi (@Debian 10) socket = 127.0.0.1:4040 master = True processes = 1 threads = 2 env = THRUK_CONFIG=/etc/thruk/ env = PERL5LIB=$PERL5LIB:/usr/share/thruk/lib/:/usr/lib/thruk/perl5 psgi = /usr/share/thruk/script/thruk.psgi
#> /etc/init.d/nginx start