Несколько проектов конфигурации Nginx / DNS [закрыто]

У меня один домен: example.com и несколько проектов: proj1, proj2, proj3 . У каждого проекта есть свой API и ВНУТРЕННЯЯ панель. Не могли бы вы предложить мне правильную конфигурацию DNS / Nginx для этой ситуации?

ВАРИАНТ 1

server_name api.example.com
location /proj1/v1.0 {
  root /proj1/api/v1.0
}
location /proj2/v1.0 {
  root /proj2/api/v1.0
}
location /proj3/v1.0 {
  root /proj3/api/v1.0
}

----------------------------------

server_name internal.example.com
location /proj1 {
  root /proj1/internal
}
location /proj2 {
  root /proj2/internal
}
location /proj3 {
  root /proj3/internal
}

ВАРИАНТ 2

server_name proj1.example.com
root /proj1

location /api/v1.0 {
}
location /internal {
}

----------------------------------

[...] the same for the proj2 and proj3

Должен ли я выбрать стратегию с несколькими местоположениями или несколькими субдоменами? Есть ли другое решение?

-1
задан 14 August 2019 в 19:02
1 ответ

Вы можете использовать для этого регулярные выражения. Вот пример:

server_name api.example.com
location ~ ^/proj(\d+)/v1\.0 {
  root /proj$1/api/v1.0
}

Регеxp в строке location означает:

  • ^/proj запрос, начинающийся с "/proj"
  • (\d+) с одной или несколькими цифрами
  • /v1\. 0, за которым следует /v1.0

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

Таким образом, если вы обратитесь к /proj4711/v1. 0, цифры 4711 будут использованы для определения того, что корневая директория должна быть /proj4711/api/v1.0

1
ответ дан 5 December 2019 в 19:38

Теги

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