Mod-Proxy

通過查詢字元串到負載均衡器的 mod-proxy

  • March 8, 2016

給定一個目前代理所有請求的平衡器:

<Proxy balancer://java-app>
   ProxySet lbmethod=bybusyness
   BalancerMember https://java1:8443 route=java-app1
   BalancerMember https://java2:8443 route=java-app1
</Proxy>
ProxyPass / balancer://java-app/ stickysession=JSESSIONID|jsessionid scolonpathdelim=On

我需要修改它,以便:當查詢字元串包含參數 p1 然後它應該代理到平衡器否則它不應該代理

mod-proxy 不能用於此案例。我們需要使用 mod-rewrite 但我不知道如何有效地實現這個目標。

在此先感謝,-內斯特

這就是我最終要做的。重寫條件觸發重寫規則將查詢字元串中包含參數 p1 的所有請求傳遞到 /restless 端點。此端點在伺服器中不存在,但僅用於通過 Proxy 平衡請求:

RewriteCond %{QUERY_STRING} ^.*p1=.*$
RewriteRule (.*)$ /restless$1 [PT] 

<Proxy balancer://java-app>
   ProxySet lbmethod=bybusyness
   BalancerMember https://java1:8443 route=java-app1
   BalancerMember https://java2:8443 route=java-app1
</Proxy>

ProxyPass /restless balancer://krfs-app stickysession=JSESSIONID|jsessionid scolonpathdelim=On

引用自:https://serverfault.com/questions/754181