2

Есть множество сайтов на одном домене. На данный момент все ручками прописано - каждый сайт в своем конфиге. Можно ли сделать так, чтобы поддомен автоматически подставлялся на основе существующих папок в /var/www/html/sitename. Если возможно, то есть ли какие нибудь примеры или инструкции, тк не могу найти нигде

Paul Wall
  • 1,733

1 Answers1

2

Для случая sub1.site.ru => /var/www/html/sub1.site.ru

server {
  listen 80;
  server_name         *.site.ru;
  root                /var/www/html/$host;
}

Для случая sub1.site.ru => /var/www/html/sub1

server {
  listen              80;
  server_name         *.site.ru;
  root                /var/www/html/$subdomain;

  set $subdomain "";
  if ($host ~* ^([a-z0-9-]+)\.site\.ru$) {
    set $subdomain $1;
  }
}

Для произвольной связки sub1.site.ru => /var/www/html/sub1-dir с использованием map:

map $host $sub_root_dir {
  sub1.site.ru sub1-dir;
  sub2.site.ru sub2-dir;
}

server {
  listen 80;
  server_name         *.site.ru;
  root                /var/www/html/$sub_root_dir;
}
Total Pusher
  • 6,307