===== Configuración de Nginx para utilizar Nagios + PNP4Nagios instalados de forma estándar =====
**Versiones del software utilizadas en esta guía**:
* Nginx: 1.7.8
* Nagios: 4.0.8
* PNP4Nagios: 0.6.25
Si se ha instalado Nagios / PNP4Nagios de forma predeterminada, es decir, partiendo del paquete de fuentes una configuración y compilación sin modificar directorios de instalación, estas serían las rutas utilizadas.
* **Ruta predeterminada de instalación de Nagios**: /usr/local/nagios/
* **Ruta predeterminada de instalación de PNP4Nagios**: /usr/local/pnp4nagios/
Depende de como se haya instalado Nginx, algunos directorios (directivas //include//) y el usuario de Nginx (//nobody//) pueden ser diferente, se debe revisar la ubicación del fichero donde encuentran las credenciales de acceso (//htpasswd.users//) y la forma de comunicación con php-fpm. La configuración actual funciona correctamente en instalación de Nginx desde el código fuente (Ver versión).
**Configuración de Nginx para Nagios y PNP4Nagios (Optativo)**.
user nobody nobody;
events {
}
http {
include mime.types;
default_type application/octet-stream;
server {
listen 80;
server_name XXXXXXX;
access_log /var/log/nginx/nagios-access.log;
error_log /var/log/nginx/nagios-error.log;
auth_basic "Private";
auth_basic_user_file /usr/local/nagios/htpasswd.users;
root /usr/local/nagios/share;
index index.php index.html;
location / {
try_files $uri $uri/ index.php /nagios;
}
location /nagios {
alias /usr/local/nagios/share;
}
location ~ ^/nagios/(.*\.php)$ {
alias /usr/local/nagios/share/$1;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ \.cgi$ {
root /usr/local/nagios/sbin/;
rewrite ^/nagios/cgi-bin/(.*)\.cgi /$1.cgi break;
fastcgi_param AUTH_USER $remote_user;
fastcgi_param REMOTE_USER $remote_user;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
######################################################### Optativo!, solo si está instalado PNP4Nagios
location /pnp4nagios {
alias /usr/local/pnp4nagios/share;
}
location ~ ^(/pnp4nagios.*\.php)(.*)$ {
root /usr/local/pnp4nagios/share/;
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
#########################################################
}
}
**Recomendación / Aviso**: Las últimas versiones de Nagios no han implementado todavía este [[http://tracker.nagios.org/view.php?id=534|parche]]. De no tener instalado Nagios habiendo aplicado dicho parche sobre su código fuente, los registros de Nagios cuando este opera junto a PNP4Nagios pueden hacerse muy extensos.
===== Configuración de Nginx como proxy reverso para un Nagios remoto =====
Puede ser interesante en determinados casos, tener un servidor Nginx que simplemente muestre bajo otro dominio el entorno Nagios instalado en otro host remoto.
El dominio "DOMINIO_LOCAL" Mostrará el panel web Nagios de "NAGIOS_REMOTO". La URL "https://DOMINIO_LOCAL" mostrará "https://NAGIOS_REMOTO"
server {
listen 80;
server_name "DOMINIO_LOCAL";
return 301 https://$server_name/nagios/;
}
server {
listen 443 ssl;
server_name DOMINIO_LOCAL;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
location = / {
rewrite ^ https://DOMINIO_LOCAL/nagios/ permanent;
}
location / {
# proxy_pass https://NAGIOS_REMOTO:7777;# Si se usa un puerto que no es el estándar (443).
proxy_pass https://NAGIOS_REMOTO;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host DOMINIO_LOCAL;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}