LINUX.ORG.RU
решено ФорумAdmin

динамические поддомены в nginx

 


1

1

Пытаюсь приделать динамические поддомены по такому замечательному и рабочему примеру

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

но мне нужно создавать поддомен из url вида example.com/site?id=subdomain
и то ли я экранирую как-то не так, то ли это нереально сделать средствами только nginx.
люди знающие, не проходите мимо. Т.е. хочу, чтоб example.com/site?id=subdomain был для пользователей доступен как subdomain.example.com без возни с vhost.

Deleted

Последнее исправление: Deleted (всего исправлений: 1)

но мне нужно создавать поддомен из url вида example.com/site?id=subdomain


я ничего не понял, но вот конфиг

    set $subdomain "";
    set $domain "example.com";
    if ($host ~* ^([a-z0-9-\.]+)\.example.com$) {
        set $subdomain $arg_id$domain;
    }

fjoe
()
Ответ на: комментарий от Deleted

нет, какие еще контейнеры?? О_о

confd ставится как сервис, пишутся темплейты и конфиг, тот же консул на пару с etcd тоже как сервисы пускаются, даже вроде пакеты были в центоси и бубунте.

ты не доки к CoreOs смотри, а все что кроме них. корь-ось она вся контейнерная, но упомянутое мной добро в standalone тоже работает

upcFrost ★★★★★
()
Ответ на: комментарий от fjoe

кстати да, не слишком понятен вопрос. я подумал что ему нужно vhost создавать по запросу и потом править конфиг в еще пачке мест

upcFrost ★★★★★
()
Ответ на: комментарий от Deleted

ааа, ну тогда да, можно просто конфигом как выше fjoe написал (за сам конфиг не уверен). если нужно было бы сам конфиг на ходу рихтовать - тут любой конфигуратор типа confd.

upcFrost ★★★★★
()
Ответ на: комментарий от Deleted

вариация на тему: как-то так

server {
  server_name ~^(.*)\.example\.com$ ;
  root www/pub/$arg_id;
}

пс- в моём конфиге пропущена точка где склеивается домен и субдомен если что

fjoe
()
Последнее исправление: fjoe (всего исправлений: 2)
Ответ на: комментарий от fjoe

Так у меня проблема в том, что та часть, которая должна стать субдоменом, находится в query_string.
Как её выдрать ?
т.е. уже есть сайты

example.com/site?id=subdomain1
example.com/site?id=subdomain2
example.com/site?id=subdomain3
и т.д.
нужно, чтоб юзер мог заходить по
subdomain1.example.com
subdomain2.example.com
и т.п.

Deleted
()
Ответ на: комментарий от Deleted

Так у меня проблема в том, что та часть, которая должна стать субдоменом, находится в query_string.
Как её выдрать ?


ну $arg_id же
nginx автоматически набивает все параметры в переменные $arg_*

fjoe
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.