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

Различные переменные среды в зависимости от поддомена

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

Предыстория: переменные среды связаны с определенным экземпляром Mongo DB, и я хотел бы использовать несколько mongo DB в зависимости от поддомена (для каждого клиента).

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

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

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

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