Заметка об использовании переменных в домене на web сервере nginx, или динамические поддомены.

Важно не забыть выше расположить статические поддомены, чтоб динамические их не перебивали.
Ну и примеры ниже:
server { 
    server_name www.example.com; 

    location / { 
        proxy_pass 127.0.0.1:80; 
    } 
}

server {
    server_name   ~^(?<dynamic>[a-z0-9\-]+)\.example.com$;

    location / {
        proxy_pass 127.0.0.1:80/sites/$dynamic$uri$is_args$args;
    }
}



Знания поглощены из habrahabr.ru

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

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

Измените секцию 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/

Добавить комментарий


Защитный код
Обновить