NginX& Munin - 位置和错误404

时间:2012-11-21 18:23:21

标签: nginx munin

我有一个使用这个简单配置运行nginx + php-fpm的服务器:

server {
    listen   80;
    server_name ipoftheserver;
    access_log /var/www/default/logs/access.log;
    error_log /var/www/default/logs/error.log;

    location / {
        root   /var/www/default/public_html;
        index  index.html index.htm index.php;
    }


    location ^~ /munin/ {
        root /var/cache/munin/www/;
        index index.html index.htm index.php;
    }

    location ~\.php$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /var/www/default/public_html$fastcgi_script_name;
    }
}

但是当我打开ipoftheserver / munin /我收到404错误(当我请求ipoftheserver / / var / www / default / public_html上的文件被正确收听时)

Munin已安装并且运行良好。如果我删除这个配置,我使用另一个配置一切都很好(但不在/ munin /目录中):

server {
  server_name ipoftheserver;
  root /var/cache/munin/www/;
  location / {
    index index.html;
    access_log off;
  }
}

如何解决?非常感谢您的帮助

1 个答案:

答案 0 :(得分:3)

使用别名而不是root

解决
server {
    listen   80;
    server_name ipoftheserver;
    access_log /var/www/default/logs/access.log;
    error_log /var/www/default/logs/error.log;

    location / {
        root   /var/www/default/public_html;
        index  index.html index.htm index.php;
    }


    location /munin/ {
        alias /var/cache/munin/www/;
        index index.html index.htm index.php;
    }

    location ~\.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME /var/www/default/public_html$fastcgi_script_name;
    }
}