Назад | Перейти на главную страницу

заставить все поддомены использовать один и тот же корень документа с 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;
}

Но это не сработало даже после перезарядки. Любые идеи?

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

Думаю, проблема в вышесказанном. Попробуйте вместо этого:

  server_name domain.tld *.domain.tld;

Есть специальный синтаксис "сахар", чтобы справиться с этим изящно:

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;
}

но в случае, если вы бывший программист-ассемблер, подсчитывающий циклы процессора в свободное время, вы можете обменять простоту более короткой записи на явный длинный список имен серверов (10x2 @cnst).