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

Ошибка перенаправления Nginx для icingaweb2

Я пытаюсь настроить IcingaWeb2 с помощью Nginx, и у меня возникают проблемы. Предлагаемая конфигурация Icinga Nginx:

location ~ ^/icingaweb2/index\.php(.*)$ {
  # fastcgi_pass 127.0.0.1:9000;
  fastcgi_pass unix:/var/run/php5-fpm.sock;
  fastcgi_index index.php;
  include fastcgi_params;
  fastcgi_param SCRIPT_FILENAME /usr/share/icingaweb2/public/index.php;
  fastcgi_param ICINGAWEB_CONFIGDIR /etc/icingaweb2;
  fastcgi_param REMOTE_USER $remote_user;
}

location ~ ^/icingaweb2(.+)? {
  alias /usr/share/icingaweb2/public;
  index index.php;
  try_files $1 $uri $uri/ /icingaweb2/index.php$is_args$args;
}

Это нормально работает, но пусть веб будет на / icingaweb2 /, а я хочу на /. Если я просто удалю icingaweb2 / из конфигурации, он будет работать нормально для всех URL, кроме /.

Моя текущая конфигурация:

server {
    listen 443 ssl default_server;

    server_name example.com
    ssl_certificate cert_path;
    ssl_certificate_key cert_key;

    location ~ ^/index\.php(.*)$ {
      fastcgi_pass unix:/var/run/php5-fpm.sock;
      fastcgi_index index.php;
      include fastcgi_params;
      fastcgi_param SCRIPT_FILENAME /usr/share/icingaweb2/public/index.php;
      fastcgi_param ICINGAWEB_CONFIGDIR /etc/icingaweb2;
      #fastcgi_param REMOTE_USER $remote_user;
    }

    location ~ ^/(.*)? {
     alias /usr/share/icingaweb2/public;
     index index.php;
     try_files $1 $uri $uri/ /index.php$is_args$args;
    }
}

Это отлично работает, если я пытаюсь, например, получить доступ https://example.com/dashboard но терпит неудачу только для https://example.com/ с 403 ошибка. Я также пытался настроить конкретный location / {} выполняя перенаправление или перезапись в / dashboard, но все еще получаю 403.

Есть идеи, что я могу попробовать дальше?

Исправляю, переписав на втором месте.

location ~ ^/(.*)? {
 alias /usr/share/icingaweb2/public;
 index index.php;
 rewrite ^/$ /dashboard;
 try_files $1 $uri $uri/ /index.php$is_args$args;
}

Это не кажется лучшим ... но теперь все работает, как ожидалось.

В качестве дополнения для тех, кто все еще сталкивается с этой проблемой:

Дополнительный / в атрибуте index решает эту проблему.

location ~ ^/icingaweb2(.+)? {
  alias /usr/share/icingaweb2/public;
  index /index.php;
  try_files $1 $uri $uri/ /icingaweb2/index.php$is_args$args;
}

Счастливого 2020 года