2

我已经为此工作了一天。我认为现在是寻求帮助的时候了。

我正在将我们的 nagios 移动到 nginx。我正在运行 nagios 以及我最近开发的 django 应用程序。不过,Pnp4nagios 给我带来了一些麻烦。我在 Nginx 中有以下配置。

location ~ ^(/pnp4nagios/.*\.php)(.*)$ {
    root /usr/share/pnp4nagios/html;

    include /etc/nginx/fastcgi_params;
    rewrite ^/pnp4nagios/(.*)$ /$1 break;

    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_param   SCRIPT_FILENAME     /usr/share/pnp4nagios/html/$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
}

这导致: 文件夹错误

如您所见,pnp4nagios 认为它​​的 index.php 位于 172.16.10.28/index.php 中,但事实并非如此。它是一个子页面(或者我应该怎么称呼它?)。我希望它指向 172.16.10.28/pnp4nagios/index.php 但我不知道如何在我的 nginx 配置中执行此操作。我宁愿不改变 pnp4nagios 中的任何东西。但如果只有一行或几行,我愿意做出妥协。我的“根”网址中已经有一个 index.php。这就是为什么我想要一个子文件夹。

导致我采用这种方法的示例是: Example1 Example2

因此,回顾一下我想要的(或我认为我需要的)就是从这个出发img src="/index.php...img src="/pnp4nagios/index.php...

PS。我没有足够的积分来创建 pnp4nagios 标签

4

2 回答 2

4

这对我有用:

location /pnp4nagios {
    alias /usr/share/pnp4nagios/html;
}   

location ~ ^(/pnp4nagios.*\.php)(.*)$ {
    root /usr/share/pnp4nagios/html;
    include /etc/nginx/fastcgi_params;
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_param PATH_INFO $fastcgi_path_info;

   fastcgi_param SCRIPT_FILENAME $document_root/index.php;
    fastcgi_pass 127.0.0.1:9000; 

}   
于 2012-10-10T12:06:54.240 回答
1

您在配置中进行了重写,去除了 php4nagios 路径组件。因此,看到对 的引用也就不足为奇了/index.phpinfo.php您应该使用相应目录中的页面验证生成的 CGI 变量。违规行是:

rewrite /pathinfo/(.*)/ $1 break;

于 2012-09-17T05:57:28.187 回答