uonick
@uonick
Сгибатель бананов

Как настроить папку и домен в nginx?

Привет!
Имеется:
  • Поддомен вида bla-stage.domain.tld
  • Папка /var/www/bla


Как настроить root, чтобы nginx искал домен без постфикса -stage?

Примеры:
  • feature-next-stage.domain.tld/var/www/feature-next
  • feature-bla-stage.domain.tld/var/www/feature-bla


Пробовал, не сработало.
server {
    listen   80 default_server;
    charset  utf-8;
    server_name "~^(.*)-stage\.domain\.tld$";
    root /var/www/$1;
    index index.html index.htm index.php;
    ...
}


Есть идеи?
  • Вопрос задан
  • 507 просмотров
Решения вопроса 1
@dodo512
server {
    listen 80;
    server_name ~^(?<root_dir>.*)-stage\.domain\.tld$;
    root /var/www/$root_dir;
    ...
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
server {
  listen 80;
  server_name   ~^([^\-]+\-[^\-]+)\-stage.domain.tld$;

  if ($host ~* ^([^\-]+\-[^\-]+)\-stage.domain.tld$) {
    set $root_dir $1;
  }

  location / {
    root /var/www/$root_dir
  }
}


Немного костыльно это в Nginx - это пример адаптированного рабочего конфига - но суть ясна. Надо установить переменные. $1 просто так не прокатит.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы