我正在尝试使用 Nginx 配置 IcingaWeb2,但遇到了一些问题。建议的 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/ 上,而我希望它放在 / 上。如果我从 conf 中删除 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。
知道下一步我可以尝试什么吗?
答案1
我通过在第二个位置进行重写来修复它。
location ~ ^/(.*)? {
alias /usr/share/icingaweb2/public;
index index.php;
rewrite ^/$ /dashboard;
try_files $1 $uri $uri/ /index.php$is_args$args;
}
感觉不是最好的......但现在一切都按预期进行。
答案2
对于仍然面临此问题的人来说,请补充一下:
在索引属性处添加一个 / 可以解决这个问题。
location ~ ^/icingaweb2(.+)? {
alias /usr/share/icingaweb2/public;
index /index.php;
try_files $1 $uri $uri/ /icingaweb2/index.php$is_args$args;
}
2020年快乐