Назад | Перейти на главную страницу

Как мне обработать запрос «index.php / somepath» в конфигурации Nginx?

В настоящее время я пытаюсь обслуживать 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;
}