【问题标题】:Switch Apache proxypass conf according to an environnment variable根据环境变量切换 Apache proxypass conf
【发布时间】:2019-07-12 22:18:05
【问题描述】:

我需要一些听起来微不足道的东西,但我不知道如何做到这一点:根据环境变量(从 conf 中设置或从 os 中设置)从 proxypass 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>

有什么想法吗?

【问题讨论】:

    标签: apache proxy environment-variables mod-proxy


    【解决方案1】:

    最终,mode_rewrite 绝对可以处理环境变量。 必须以这种方式使用它:

    RewriteRule .* - [E=TEST_ACTIVATED:false]
    
    # ====== TEST  ==================
    RewriteCond "%{ENV:TEST_ACTIVATED}" "true"
    RewriteCond "%{REQUEST_URI}" "/some/path"
    RewriteRule "^/some/path/(.*)" http://some.vm/some/path/$1 [P]
    # ====== HORS TEST ==============
    RewriteCond "%{ENV:TEST_ACTIVATED}" "false"
    RewriteCond "%{REQUEST_URI}" "/some/path"
    RewriteRule "^/some/path/(.*)" http://another.vm/some/path/$1 [P]
    

    现在,你只需要切换 TEST_ACTIVATED 值

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-07
      • 1970-01-01
      • 1970-01-01
      • 2018-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多