![如何为多个地理上受限的 1 对 1 映射客户端提供单个域名到数据库 + Web 服务器实例?](https://linux22.com/image/726755/%E5%A6%82%E4%BD%95%E4%B8%BA%E5%A4%9A%E4%B8%AA%E5%9C%B0%E7%90%86%E4%B8%8A%E5%8F%97%E9%99%90%E7%9A%84%201%20%E5%AF%B9%201%20%E6%98%A0%E5%B0%84%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%8F%90%E4%BE%9B%E5%8D%95%E4%B8%AA%E5%9F%9F%E5%90%8D%E5%88%B0%E6%95%B0%E6%8D%AE%E5%BA%93%20%2B%20Web%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%AE%9E%E4%BE%8B%EF%BC%9F.png)
假设我有一个在美国的客户(企业,而非消费者),我为其在美国设置了一个特定的 Web 服务器 + 数据库实例。只有此数据库实例具有此客户的详细信息。假设我有一个在中东的客户,我为其在新加坡设置了一个特定的 Web 服务器 + 数据库实例。只有此客户的详细信息存储在新加坡服务器中。并且,Web 服务器不是无状态的。也就是说,它们将用户登录信息保存在自己的 redis 实例中(同样,2 个 redis 实例分别对应新加坡和美国)。假设我的域名是 my-domain.com。假设中东用户访问 my-domain.com。登录后发现他的登录失败,因为他正在访问美国服务器,而他的凭据不在那里。并且,负载均衡器直到他的登录通过后才真正知道他是中东用户。我猜中东用户可能正在从美国访问 my-domain.com,因此 geoDNS 会将他引导到美国服务器。对吗?有什么解决方案?那么亚马逊和谷歌等大公司如何处理这个问题呢?