автосубдомены nginx

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

В первую очередь, необходимо настроить DNS: добавить субдомен с именем ‘*’ (звездочка, без кавычек) и направить его на IP вашего веб-сервера. Немного подробнее об этом написано на странице: Apache: Автоматические субдомены.

Измените секцию server вашего сайта следующим образом:

server {
listen 80;
server_name example.com *.example.com;
root /var/www/example.com/$subdomain;
set $subdomain «»;
if ($host ~* ^([a-z0-9-\.]+)\.example.com$) {
set $subdomain $1;
}
if ($host ~* ^www.example.com$) {
set $subdomain «»;
}
}
Не забудьте поменять example.com на имя вашего домена.

Эта конфигурация работает следующим образом:

АДРЕС URL ПУТЬ НА СЕРВЕРЕ
http://example.com/ /var/www/example.com/
http://www.example.com/ /var/www/example.com/
http://vasya.example.com/ /var/www/example.com/vasya/
http://vasya.ivanov.example.com/ /var/www/example.com/vasya.ivanov/
Если посетитель запросит субдомен, каталог которого не существует, ему будет выдана стандартная ошибка 404 (Файл не найден).