Apache mod_proxy:基于http头redirect?

我想知道是否可以根据http请求标头值将httpstream量定向到特定的后端服务器。 以“引用者”的http头值为例。

我有2个服务器实例。 一个用于UAT(testing)和一个用于预生产使用。 我想在这两个服务器实例前面有一个Apache反向代理。 而当一个http请求来到时,基于'referer'http头(uat或pre-prod)的值,我希望我的反向代理将请求指向正确的后端服务器实例。

这可能吗?

谢谢

对的,这是可能的。

根据REFERER标题的条件检查制定一个重写规则。

RewriteCond文档

%{HTTP:header},其中header可以是任何HTTP MIME头名称,可以始终用于获取HTTP请求中发送的头的值。 示例:%{HTTP:Proxy-Connection}是HTTP头“Proxy-Connection:”的值。

RewriteCond %{HTTP:Referer} =="xyz.com/abcd" RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] 

可能需要更多的信息(即更精确的例子)才能更准确,但是这里有一些工作要做。

 RewriteCond %{HTTP:Referer} webapp-uat RewriteRule (.*) http:/uat-backend/$1 [P,L] RewriteCond %{HTTP:Referer} webapp-qa RewriteRule (.*) http:/qa-backend/$1 [P,L] 

我希望能给你足够的启动。