我目前正在尝试从 nginx 提供 Icinga。新的 Icinga-Web ui 尝试从 URL 加载文件http://SERVER/icinga-web/index.php/appkit/squishloader/javascript
(导致 404)。如何为这种情况设置位置?如何让 nginx 提供 index.php 并以 Icinga 理解的方式传递完整的请求路径?
这是我当前为 icinga 设置的 nginx 配置(改编自默认的 apache 配置):
server {
server_name SERVER;
root /opt/icinga/icinga-1.2.1;
location /icinga-web/js/ext3 {
alias /opt/icinga/icinga-1.2.1/lib/ext3;
}
location /icinga-web {
alias /opt/icinga/icinga-1.2.1/pub;
}
location /icinga/cgi-bin {
alias /opt/icinga/icinga-1.2.1/sbin;
}
location /icinga {
alias /opt/icinga/icinga-1.2.1/share;
}
location ~ \.php([\?/].*)?$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:61000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
有什么想法吗?谢谢!
答案1
检查日志。尝试在路径末尾添加 /。像 index.php/something 这样的 URL 应该可以立即使用(因为它只执行 index.php 文件)。如果这不起作用,请尝试为其创建重写规则。也许这样做也可以解决问题:
location ~ index\.php([\?/].*)?$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:61000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
}
答案2
您需要使用文档根目录设置虚拟主机icinga-web
。