我想知道是否可以根据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]
我希望能给你足够的启动。