我有几个域名和几个文档根,如下所示:
toto.exemple.com /var/www/exempleOne
titi.exemple.com /var/www/exempleTwo
[...]基本上,我想做的是,只对所有域使用一个服务器块/ vhost文件。
为此,我尝试使用nginx地图,并执行了以下操作:
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/)。
发布于 2019-09-05 16:17:29
您可以尝试使用$http_host作为变量,而不是在map中使用$host。
然后,还可以在default中使用map项,将其设置为某些默认值。
通过这种方式,可以看到nginx是否为root语句计算映射。如果nginx试图从default目录中获取数据,那么它就意味着变量map正在使用的东西出了问题。
如果它仍然从nginx默认的root目录中获取,那么这意味着nginx在这里不能正确地计算map。
我还建议在root块之外设置location /。
https://serverfault.com/questions/982011
复制相似问题