让所有子域名使用相同的 nginx 文档根目录

让所有子域名使用相同的 nginx 文档根目录

我的域的 *.conf 文件中有以下内容:

server { 
  listen 80; 
  server_name domain.tld; 
  access_log /var/log/nginx/domain.tld.accesslog; 
  root /var/www/domain.tld; 
  index index.htm index.html;
}

我的问题是...如果我想让所有子域名使用与 domain.tld 相同的文档根目录(以及通常相同的设置)该怎么办?

我尝试过这个:

server { 
  listen 80; 
  server_name domain.tld; 
  server_name *.domain.tld; 
  access_log /var/log/nginx/domain.tld.accesslog; 
  root /var/www/domain.tld; 
  index index.htm index.html;
}

但即使重新加载也不起作用。有什么想法吗?

答案1

特殊语法“糖” 来优雅地处理这个问题:

server { 
    listen 80; 
    server_name .domain.tld; # ← this one's sweety
    access_log /var/log/nginx/domain.tld.accesslog; 
    root /var/www/domain.tld; 
    index index.htm index.html;
}

但如果你曾经是一名汇编程序员,在业余时间计算 CPU 周期,那么你可能想用更短的符号来代替显式列出服务器名称(10x2 @韋斯特)。

答案2

  server_name domain.tld; 
  server_name *.domain.tld;

我认为以上就是问题所在。请尝试以下方法:

  server_name domain.tld *.domain.tld;

相关内容