nginx-将域名映射到文档根目录

nginx-将域名映射到文档根目录

我有几个域名和几个文档根目录,如下所示:

toto.exemple.com /var/www/exempleOne
titi.exemple.com /var/www/exempleTwo
[...]

基本上我想要做的是,对所有域仅使用一个服务器块/ vhost 文件。

我尝试使用 nginx map 来实现这一点,并执行以下操作:

map $host $docroot{
  toto.exemple.com /var/www/exempleOne;
  titi.exemple.com /var/www/exempleTwo;
}

server {
    listen 80;
    server_name _;
        location / {
          root   $docroot;
          expires           30d;
        }
}

但它似乎不起作用,似乎 nginx 正在使用默认文档根目录(/etc/nginx/html/)。

答案1

您可以尝试使用$http_host作为变量而不是$host在中map

然后,您还可以使用其中的default项目map,并将其设置为某些默认值。

这样,我们就可以查看 nginx 是否对该root语句评估了映射。如果 nginx 尝试从目录中获取数据default,则意味着变量的map使用存在问题。

如果它仍然从 nginx 默认root目录获取,则意味着 nginx 没有正确评估此处map

我还建议将其设置rootlocation /块的外部。

相关内容