В настоящее время я пытаюсь обслуживать Icinga из nginx. Новый пользовательский интерфейс Icinga-Web пытается загрузить файл с URL http://SERVER/icinga-web/index.php/appkit/squishloader/javascript
(приводит к 404). Как мне настроить место для этого сценария? Как заставить nginx обслуживать index.php и передавать полный путь запроса так, как это понимает Icinga?
Это моя текущая конфигурация nginx для icinga (адаптированная из конфигурации 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;
}
}
Есть предположения? Спасибо!
Вам необходимо настроить виртуальный хост с корнем документа icinga-web
.
Проверить журналы. Попробуйте добавить / в конец пути. URL-адреса, такие как index.php / something, должны работать из коробки (поскольку он просто выполняет файл 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;
}