我在 Nginx 服务的 Arch Linux 上配置 Nagios 时遇到了麻烦。Nagios 服务运行顺利,但通过 Nginx 的服务出现故障。从屏幕截图中可以看到,字体全都乱了,图标也没有显示在浏览器中。我怀疑 CSS 和图像文件的路径不知何故出现故障,因此 Nginx 无法提供服务。
这是我的 Nginx 虚拟服务器配置。我猜想我犯了一些愚蠢的错误,但我找不到问题所在。
错误日志显示以下内容:
*334 open() "/usr/share/nagios/share/nagios/images/ndisabled.gif" failed (2: No such file or directory)
但是,GIF 位于,/usr/share/nagios/share/images/ndisabled.gif
表明路径存在一些混淆,但我不知道如何最好地修复。
也许浏览该论坛的某位 Nginx/Nagios 专家会在一微秒内发现这个问题!
server {
server_name nagios.bellaria www.nagios.bellaria;
root /usr/share/nagios/share;
listen 80;
index index.php index.html index.htm;
access_log nagios.access.log;
error_log nagios.error.log;
auth_basic "Nagios Access";
auth_basic_user_file /etc/nagios/htpasswd.users;
location ~ \.php$ {
try_files $uri = 404;
fastcgi_index index.php;
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
include fastcgi.conf;
}
location ~ \.cgi$ {
root /usr/share/nagios/sbin;
rewrite ^/nagios/cgi-bin/(.*)\.cgi /$1.cgi break;
fastcgi_param AUTH_USER $remote_user;
fastcgi_param REMOTE_USER $remote_user;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi.conf;
fastcgi_pass unix:/run/fcgiwrap.sock;
}
location /stylesheets {
alias /usr/share/nagios/share/stylesheets;
}
}
答案1
也许由于某些配置,nagios 在 /nagios/images 上查找图像。检查页面源代码 ( Ctrl+ u) 以确认。
您可以为 nagios 设置别名:
location /nagios {
alias /usr/share/nagios/share;
}
还要检查配置文件cgi.cfg
。
(对不起我的英语不好)
在带有 nginx 的 nagios 的 freebsd 中,我使用这个 php/CGI 配置,也许这可以帮助您解决 cgi 问题:
location ~ ^/nagios/.+\.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
include fastcgi_params;
}
location ~ ^/nagios/.+\.cgi$ {
fastcgi_pass unix:/var/run/fcgiwrap/nagios.socket;
# fastcgi_pass 127.0.0.1:9000;
fastcgi_param AUTH_USER "nagiosadmin";
fastcgi_param REMOTE_USER "nagiosadmin";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}