如果需要,根据子域名在 Apache 中转发请求

如果需要,根据子域名在 Apache 中转发请求

在 Apache 2.2 中,是否有办法根据子域/IP 地址映射的查找表(在文件或数据库中提供)将某些子域转发到另一台服务器(在另一个数据中心)?

我需要这个的原因是我有一个 SaaS Web 应用程序,其中每个客户都有自己的子域,即customer1.mycompany.comcustomer2.mycompany.com等。如果 Apache 收到客户的请求,而该客户的数据未存储在当前服务器上,我希望 Apache 只需将请求转发(代理?)到正确的服务器即可。客户数量将不断增加(希望如此!),每次发生这种情况时我都无法重新加载 Apache。

更新:

我们目前的想法是使用 GeoIP DNS 将客户发送到正确的(最近的)服务器,如果客户被意外发送到错误的服务器(例如,他们正在旅行),那么我们需要进行代理。但是,即使我们为每个子域添加了 DNS 条目,在首次创建帐户时或将帐户从一台服务器移动到另一台服务器时,仍然可能会有请求最终到达错误的服务器。出于各种原因,我们不想在 DNS 条目上设置非常低的 TTL。

答案1

实现您的想法的一种方法是创建您自己的索引文件(使用 PHP/perl 或您喜欢的任何语言)。索引页将简单地查询域的 DB/文件映射并将重定向发送到相应的服务器。在这种情况下,您无需担心 DNS 缓存。

相关内容