Назад | Перейти на главную страницу

Конфигурации нескольких виртуальных хостов Nginx

В соответствии с требованиями нашей платформы, каждый веб-сайт будет автоматически размещен вместе с конфигурациями DNS, что сделает сайт живым на зарезервированном домене, настроив Nginx для каждого домена и поддомена.

Нам нужны динамические конфигурации виртуальных хостов для Nginx, поэтому мы придумали три варианта, упомянутые ниже.

Требуется предложение, какой из них будет правильным, так как наша база веб-сайтов растет с 30 до 40 новых веб-сайтов в день, а на платформе уже зарегистрировано более 2000 веб-сайтов.

Также будет рассмотрен любой лучший вариант, кроме этих.

Массовые конфигурации виртуальных хостов

Этого можно добиться, сделав server_name динамический с использованием регулярного выражения.

Плюсы:

Минусы:

Пути решения проблемы:

Конфигурации файлов отдельных виртуальных хостов

Скрипт, который при получении запроса на новый домен создаст виртуальные хосты в отдельном файле, сделает его доступным для Nginx, включит его и перезагрузит Nginx.

Плюсы:

Минусы:

Способы решения проблемы:

Однофайловые конфигурации с несколькими хостами

Скрипт, который при получении запроса на новый домен добавит новые виртуальные хосты в единственный файл, используемый Nginx, и перезагрузит Nginx.

Плюсы:

Минусы:

Способы решения проблемы:

Мы наконец остановились на

Конфигурации файлов отдельных виртуальных хостов

Причина в том, что большинство веб-сайтов, зарегистрированных на нашей платформе, обслуживаются через субдомен, и очень немногие будут иметь собственный домен. Таким образом, в этом случае один файл с подстановочной записью будет служить цели для большинства веб-сайтов. А для нескольких веб-сайтов с собственным доменом у нас может быть отдельный файл хоста, и это можно автоматизировать.

Это также помогает в обслуживании запросов https для каждого поддомена и домена. Мы также можем автоматизировать некоторые вещи на сервере nginx, используя сценарии Lua для управления этими файлами хостов.

Если у кого-то есть лучший вариант, пожалуйста, ответьте своими комментариями, это нам очень поможет.