使用nginx位置块来处理root中的多个站点

时间:2016-06-30 10:58:55

标签: nginx configuration location

我一直在尝试使用nginx位置块来解决根目录中的站点文件夹,但这不起作用。我想知道我对位置寻址的理解是否有问题。

我在nginx / sites-enabled / default中有以下内容:

index index.php index.html index.htm;

server {
  listen 80;
  server_name allsites;

  root /allsites;
  try_files $uri $uri/ /index.php$is_args$args;

  location ~ /site1 {
    root /allsites/site1/public;
    try_files $uri $uri/ /index.php$is_args$args;

    location ~ \.php$ {
      include snippets/fastcgi-php.conf;
      fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }
  }

  location ~ /site2 {
    root /allsites/site2/public;
    try_files $uri $uri/ /index.php$is_args$args;

    location ~ \.php$ {
      include snippets/fastcgi-php.conf;
      fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }
  }

  location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
  }

  location ~ /\.ht {
      deny all;
  }

}

我收到了/allsite的回复(index.html),但使用localhost:8080/site1或同一site2,我得到了404 error。我想我要做的是使用location ~ /site作为根的别名(我尝试了别名而不是root,但是没有用)。

我是否从根本上错过了解位置块的工作原理?或者这是一个配置错误(在这种情况下有任何建议?)。

0 个答案:

没有答案