===== 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; } }