Web-сервер apache наверное самый лучший web-сервер, но при настройке web-интерфейса для nagios
можно обойтись и без него, что сейчас и будет описано.Применительно к FreeBSD:
portinstall /usr/ports/www/nginx
В /etc/rc.conf.local
# nginx
nginx_enable=YES
nginx не может выполнять php и cgi скрипты. Для этого можно использовать backend серверы.
Схема получается следующая:
mini_httpd
---*.cgi---> 192.168.0.200:1081
/
nginx / lighttpd
192.168.0.200:80------*.php---> 192.168.0.200:1082
\
\ Каталог
---*.html--> /usr/local/www/...
В этой схеме nginx слущает на порту запросы, производит авторизацию, статические файлы отдает сам,
cgi-скрипты перенаправляет к запущенному на внутреннем порту 127.0.0.1:1081
mini_httpd (/usr/ports/www/mini_httpd), который в свою очередь и выполняет эти скрипты.
Схема может показатся сложной, но в моём случае переход на нее оправдался:
опрос nagios производится 1 раз в минуту из Firefox (спец.плагин), и машина с nagios
испытывала некоторые трудности с производительностью. После запуска данной схемы
нагрузка на машину значительно снизилась.
Если используется pnp4nagios (http://www.pnp4nagios.org/pnp/install) для построения графиков
производительности сервисов, то выполнение php-скриптов возможно с помощью запущенного
на внутреннем порту 127.0.0.1:1082 lighttpd (/usr/ports/www/lighttpd).
Конфигурационные файлы nginx хранятся по умолчанию в /usr/local/etc/nginx/.
/usr/local/etc/nginx/nginx.conf
user www www;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /var/run//nginx.pid;
worker_rlimit_nofile 8192;
events {
worker_connections 4096;
}
http {
include mime.types;
include proxy.conf;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] $status '
'"$request" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
server_names_hash_bucket_size 128; # this seems to be required for some vhosts
## интранет
server {
listen 192.168.0.200:80;
server_name 192.168.0.200 ns.contora.local;
access_log /var/log/nginx/access.log;
include nagios.conf;
include nagios-pnp.conf;
location / {
root /usr/local/www/apache22/data/;
}
include error-pages.conf;
}
}
/usr/local/etc/nginx/nagios.conf
location /nagios/ {
auth_basic "Nagios ";
auth_basic_user_file /usr/local/www/nagios/.htpasswd;
alias /usr/local/www/nagios/;
}
location /nagios/cgi-bin/ {
auth_basic "Nagios ";
auth_basic_user_file /usr/local/www/nagios/.htpasswd;
proxy_pass http://localhost:1081;
proxy_redirect http://localhost:1081/nagios/cgi-bin/ /nagios/cgi-bin/;
set $referer $http_referer;
proxy_set_header Referer $referer;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host localhost:1081;
proxy_set_header REQUEST_METHOD $request_method;
proxy_set_header REMOTE_USER $remote_user;
proxy_set_header REMOTE_ADDR $remote_addr;
proxy_set_header SERVER_NAME localhost;
proxy_set_header SERVER_PORT 1081;
proxy_set_header HTTP_COOKIE $http_cookie;
}
/usr/local/etc/nginx/nagios-pnp.conf
location ~* /pnp/.*\.php$ {
root /usr/local/share/;
fastcgi_pass 127.0.0.1:1082;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nagios/share/$fastcgi_script_name;
include fastcgi_params;
}
location ~* /pnp/ {
root /usr/local/nagios/share/;
index index.php index.html index.htm;
}
/usr/local/etc/nginx/error-pages.conf
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/www/nginx-dist;
}
error_page 401 /401.html;
location = /401.html {
root /usr/local/www/nginx-dist;
}
error_page 404 /404.html;
location = /404.html {
root /usr/local/www/nginx-dist;
}
Ссылки:
http://sysoev.ru/nginx/
http://www.lighttpd.net/
http://www.acme.com/software/mini_httpd/
http://www.lissyara.su/?id=1532
URL: http://opensolution.org.ru/nagios/nginx
Обсуждается: http://www.opennet.dev/tips/info/1795.shtml