Apache-2.4
如何在 apache 反向代理下在兩個條件下進行反向
我是 apache 反向代理的新手,我試圖像下面這樣反轉 Url 呼叫:
我能夠像這樣轉發 Webserver1 上的所有請求:
<VirtualHost *:80> ProxyPreserveHost On ServerName localhost ProxyPass / http://webserver1/ ProxyPassReverse / http://webserver1/ </VirtualHost>
但我無法對 Url Param 範例設置條件:
如果 “http://reverse.proxy.com/?param=foo" 然後將其轉發到 WebServer 2
而且,我不知道這些規則是否可以在相同的配置上。
非常感謝您的幫助
對於像你描述的條件,你必須使用 mod_rewrite 來代理。
RewriteCond %{QUERY_STRING} ^param=foo$ RewriteRule ^(.*) http://webserver2/$1 [P,L] RewriteRule ^(.*) http://webserver1/$1 [P,L]
說明:首先我們檢查您要匹配的查詢字元串,如果匹配,則應用以下 RewriteRule,但如果不匹配,則應用第二個 RewriteRule。