Apache mod_proxy:基于 http 标头的重定向?

Apache mod_proxy:基于 http 标头的重定向?

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

我有 2 个服务器实例。一个用于 UAT(测试),一个用于预生产。我希望在这两个服务器实例前面有一个 Apache 反向代理。当一个 http 请求到来时,我希望我的反向代理根据“referer”http 标头(uat 或 pre-prod)值将请求定向到正确的后端服务器实例。

这可能吗?

谢谢

答案1

对的,这是可能的。

根据 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]

答案2

可能需要更多信息(即更精确的例子)才能更加准确,但这里有一些可以利用的东西。

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

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

我希望这能给你提供足够的帮助。

相关内容