Icinga 将二进制输出显示到浏览器

Icinga 将二进制输出显示到浏览器

无法判断这是 Icinga 还是 nginx,但是当我拉起 Icinga 经典网页时,屏幕上显示了二进制 cgi。

以下是屏幕截图:http://i.imgur.com/ZHFYB4k.png

它似乎是来自“tag.cgi”的二进制数据。

这是我的 nginx 配置:

     # Icinga ---------------------------------------------------------
     location /icinga/ {
               alias                   /usr/share/webapps/icinga/;
               auth_basic              "Icinga Access";
               auth_basic_user_file    /etc/icinga/htpasswd.users;
     }

     location ~ ^/icinga/(.*)\.cgi$ {
              root           /usr/share/webapps/;
              fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
              include        fastcgi.conf;
              fastcgi_param  AUTH_USER          $remote_user;
              fastcgi_param  REMOTE_USER        $remote_user;
              # rewrite        ^/icinga/cgi-bin/(.*)\.cgi /$1.cgi break;
              include        /etc/nginx/fastcgi_params;
              fastcgi_index  index.php;
              fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
              auth_basic     "Icinga Access";
              auth_basic_user_file    /etc/icinga/htpasswd.users;
              }

知道发生什么事了吗?

答案1

Icinga 主页由三个框架组成

  1. 左侧面板包括纯 HTML 菜单.html
  2. 顶部面板包括CGI 输出 cgi-bin/tac.cgi?tac_header
  3. 主窗口包括CGI 输出cgi-bin/tac.cgi?tac_header

你吐出二进制文件而不是 CGI 生成的页面的原因nginx是,你将请求传递给PHP-FPM套接字。PHP FPM 进程只理解 PHP 语言,但 Icinga 本身主要用 C/C++ 编写

默认情况下,Nginx 无法处理 CGI,因此你必须在服务器中添加另一个 CGI 包装器,例如。Icinga 官方 wiki 中有 nginx 配置示例这一页

相关内容