无法判断这是 Icinga 还是 nginx,但是当我拉起 Icinga 经典网页时,屏幕上显示了二进制 cgi。
以下是屏幕截图:
它似乎是来自“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 主页由三个框架组成
- 左侧面板包括纯 HTML 菜单.html
- 顶部面板包括CGI 输出 cgi-bin/tac.cgi?tac_header
- 主窗口包括CGI 输出也cgi-bin/tac.cgi?tac_header
你吐出二进制文件而不是 CGI 生成的页面的原因nginx
是,你将请求传递给PHP-FPM套接字。PHP FPM 进程只理解 PHP 语言,但 Icinga 本身主要用 C/C++ 编写。
默认情况下,Nginx 无法处理 CGI,因此你必须在服务器中添加另一个 CGI 包装器,例如包。Icinga 官方 wiki 中有 nginx 配置示例这一页