【问题标题】:Proxy based on parameter in the URL基于 URL 中参数的代理
【发布时间】:2011-12-27 14:19:22
【问题描述】:

我想使用 Apache HTTPd 作为代理服务器:

如果用户请求http://xxx?st=yyy,则选择的后端服务器应该是server1。如果用户请求http://xxx(无st 参数),则后端服务器应为server2

我想知道我需要如何配置 Apache 来实现这一点。

【问题讨论】:

    标签: apache proxy


    【解决方案1】:

    查看http://httpd.apache.org/docs/current/mod/mod_rewrite.html 和示例;具体而言,以下事实对您有所帮助:

    • REQUEST_URI 请求的 URI 的路径组件,例如“/index.html”。这明显排除了查询字符串,该查询字符串可作为其自己的名为 QUERY_STRING 的变量使用。

    然后让你做类似的事情

    RewriteCond  %{QUERY_STRING}  ^$
    RewriteRule ^/foo/(.*)$ http://server2/$1 [P,L]
    
    RewriteRule ^/foo/(.*)$ http://server1/$1 [P,L]
    

    等等。如果它是整个服务器 - 删除 /foo/ 和 $1 之前的 / - 如果它是特定于服务器的 - 在它前面放置一个额外的 RewriteCond 以限制特定主机等等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-20
      • 2014-09-12
      • 1970-01-01
      • 2021-11-30
      • 2011-03-12
      相关资源
      最近更新 更多