Nagios is powerful monitoring software. And like OTRS in most cases it’s used with Apache. But sometimes you might want to use it with nginx. Here is a simple way to do that. Actually it’s very similar to launching OTRS with nginx – in both ways we use Perl FastCGI wrapper. I assume that you already have Nagios installed and use Fedora 15. Download Perl FastCGI wrapper and put it to /usr/local/bin/fastcgi-wrapper.pl. Modify it to use TCP socket:
$socket = FCGI::OpenSocket( "127.0.0.1:9002", 10 ); #use IP sockets
Put this systemd configuration file to /lib/systemd/system/fcgi-perl.service:
[Unit] Description=fastcgi-wrapper.pl [Service] ExecStart=/usr/local/bin/fastcgi-wrapper.pl Type=forking User=apache Group=apache Restart=always [Install] WantedBy=multi-user.target
Enable it:
systemctl enable fcgi-perl.service
For using Nagios web interface you also need to have PHP processes pool, in our case it listens TCP socket 127.0.0.1:9005. So if you don’t have one, you need to launch it (convenient way to do that is to use spawn-fcgi tool).
Add next lines to your nginx server configuration file:
location /nagios {
alias /usr/share/nagios/html;
index index.php;
}
location ~ ^/nagios/(.*.php)$ {
root /usr/share/nagios/html/;
rewrite ^/nagios/(.*) /$1 break;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME /usr/share/nagios/html$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9005;
}
location ~ ^/nagios/cgi-bin/
{
root /usr/lib64/nagios/cgi-bin/;
rewrite ^/nagios/cgi-bin/(.*).cgi /$1.cgi break;
include /etc/nginx/fastcgi_params;
fastcgi_param AUTH_USER $remote_user;
fastcgi_param REMOTE_USER $remote_user;
fastcgi_param SCRIPT_FILENAME /usr/lib64/nagios/cgi-bin$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9002;
}
service nginx restart
Now your Nagios web interface should be accessible via http://yourdomain.com/nagios