在另一个根上的nginx子uri

我坚持一个nginx规则:

我必须在我们的监控服务器上使用Nginx,它使用Zabbix。 我成功地为zabbixconfiguration了nginx,这样我就可以访问monit.domain.com并将它发送给zabbix )。

但是我不能设置monit.domain.com/dashboard,所以它显示/ usr / share / dashboard / pages的内容 ,也就是php(当然,只有index.php很重要,你猜对了,这是我的仪表板)。

以下是仪表板特定的nginx conf:在/etc/nginx/sites-enabled/monitoring.conf中:

server { ######## server stuff with /location and ssl certs location /dashboard { alias /usr/share/dashboard/pages/index.php; } } 

使用root不适合遵循nginx最佳实践(并且不起作用,无论如何我都试过)。

编辑:这里是我在Nginx的日志中得到的错误:

[error] 8247#0: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: XXX.XXX.XXX.XXX, server: monit.domain.com, request: "GET /dashboard/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "monit.domain.com"

任何人都可以build议我看看,谢谢。

好吧,我得到它的工作应该像这样的configuration:

 server { listen 443 ssl; server_name monit.domain.com; index index.php; root /usr/share/zabbix; error_log /var/log/nginx/error.log notice; ssl on; # SSL stuff location / { root /usr/share/zabbix; } location /dashboard { root /usr/share; location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PHP_VALUE " #many parameters "; #fastcgi_stuff ..... } 

所以最后,重新定义一个新的根,嵌套一个PHP段来指定它应该被解释的作品。