Различные переменные окружения в зависимости от субдомена

Можно ли с помощью NGINX выбирать разные переменные окружения в зависимости от субдомена? И если да, как я могу это сделать?

Предыстория: переменные окружения ссылаются на определенный экземпляр БД Mongo, и я хотел бы использовать несколько БД Монго в зависимости от субдомена (для каждого клиента).

1 ответ

Согласно официальной документации, единственный способ манипулировать переменными окружения в nginx - это использовать env директива, доступна только в main контекст (т.е. не зависит от протокола, такого как http при этом не свойственная server с).

Это означает, что переменные будут установлены для всей среды nginx (даже если кажется, что вы можете изменить ее на основе рабочих процессов, которые являются независимыми процессами).

Чтобы сделать то, что вы хотите, я бы предложил либо:

  • Используйте отдельные экземпляры nginx для каждого субдомена, считывая общие части конфигурации из одних и тех же файлов (чтобы вам не приходилось хранить отдельные копии главной магистрали) и устанавливайте среду каждого экземпляра nginx в соответствии с конкретным субдоменом, который он обслуживает
  • Следуйте предложению @XavierLucas и используйте некоторые модули, такие как встроенный Perl или сторонние Lua.
Другие вопросы по тегам