Мне нужно что-то, что звучит тривиально, но я не мог понять, как это сделать: переключиться с прокси-сервера conf на другой в соответствии с переменной окружения (устанавливается изнутри conf или с ОС).
У меня есть несколько условий, которые могут быть сложными здесь:
- Я не могу использовать переменную из командной строки (-DPARAMATER_A)
- Я не могу изменить используемый путь.
Я знаю, что могу выполнить некоторый условный проход, используя правила перезаписи, но если я не читаю неправильно, я не могу использовать переменную окружения в качестве триггера.
Я также знаю, что вы не можете использовать оператор , поскольку внутри такого оператора нельзя использовать прокси-пароль.
В конце концов, я попытался с помощью оператора (см. Ниже), но мне не удалось работать, если я не напишу
Define PATH_A_ACTIVATED true
Но обратное не работает (похоже, что оно все еще определено, независимо от значения):
Define PATH_A_ACTIVATED false
Таким образом, до сих пор я застрял без способа выполнить это.
Вот моя последняя (нерабочая) попытка запросить значение из переменных окружения и объединить его с Define:
SetEnv PARAMATER_A false
<If "! -T reqenv('PARAMATER_A')">
Define PATH_A_ACTIVATED true
</If>
<Else>
UnDefine PATH_A_ACTIVATED
</Else>
<IfDefine PATH_A_ACTIVATED>
ProxyPass "/someapp" "http://dv00001.someplace.fr/someapp"
ProxyPassReverse "/someapp" "http://dv00001.someplace.fr/someapp"
</IfDefine>
<IfDefine !PATH_A_ACTIVATED>
ProxyPass "/someapp/domain1" "http://dv00001.someotherplace.fr/someapp"
ProxyPassReverse "/someapp/domain1" "http://dv00001.someotherplace.fr/someapp"
ProxyPass "/someapp/domain2" "http://dv00001.someplace.fr/someapp"
ProxyPassReverse "/someapp/domain2" "http://dv00001.someplace.fr/someapp"
</IfDefine>
Есть идеи?