我们有一个 Symfony2 应用程序正在大力开发中,并且刚刚签署了我们的第一个生产客户。
我们希望暂时将此客户端放在另一个稳定的集群上,同时继续在当前集群上进行大量开发。但我们希望整个情况对客户端不可见。
因此,我想使用他们的特定请求标头授权(首选)或他们的 IP 地址(如果标头不可行)有选择地将来自该客户端机器的请求从我们的主要 www 网络服务器转发到我们稳定集群的网络服务器。
我正在研究 mod_proxy,这是实现此目的的最佳工具吗?还有其他吗?如有必要,我可以在应用程序中执行此操作,但这会给每个请求增加一些不必要的开销。我们在 AWS 上进行设置,看看它是否提供了我不知道的任何其他工具。
非常感谢!
答案1
由于您想有选择地进行转发,因此您需要 mod_proxy 和 mod_rewrite,因为 mod_proxy 本身只能通过 URL 上下文进行代理
您可以基于远程 IP 进行代理:
RewriteCond %{REMOTE_ADDR} ^12.34.56.78$
RewriteRule ^(.*)$ http://cluster/$1 [P]
或基于登录(假设基本身份验证):
RewriteCond %{REMOTE_USER} ^username$
RewriteRule ^(.*)$ http://cluster/$1 [P]
%{HTTP:header_name}
如果是自定义标头,还存在以下情况:
RewriteCond %{HTTP:my_custom_header_name} ^my_custom_header_value$
RewriteRule ^(.*)$ http://cluster/$1 [P]