我现在已经在这一天了。我认为现在是时候寻求帮助了。
我正在将我的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中的任何内容。但如果它只是一条或几条线,那么我愿意做出妥协。我的“root”网址中已经有一个index.php。这就是我想要一个子文件夹的原因。
引导我达到这个目的的例子是: Example1 Example2
所以回顾一下我想要的东西(或者我认为我需要的东西)就是这样:img src="/index.php...
到img src="/pnp4nagios/index.php...
PS。我没有足够的积分来创建pnp4nagios标签
答案 0 :(得分:3)
这对我有用:
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;
}
答案 1 :(得分:1)
你的配置中有一个重写,剥离了php4nagios路径组件。因此,看到/index.php
的引用并不奇怪。您应该使用相应目录中的info.php
页面验证生成的CGI变量。违规行是:
rewrite /pathinfo/(.*)/ $1 break;