基于位置的 Web 服务器路由

Eri*_*ric 5 nginx django

我有一个网站,有来自香港和澳大利亚的用户。

不幸的是,由于服务器位于澳大利亚,来自香港的用户会遇到延迟问题。在返回澳大利亚之前,交通必须经过美国。

所以我也在香港设置了一个服务器,使用 .hk TLD 的用户将被重定向到香港的网络服务器。它与澳大利亚服务器共享同一数据库服务器,但由于积极的 SQL 查询缓存,SQL 查询延迟对性能的影响可以忽略不计。

但是对于习惯了香港网站但后来前往澳大利亚的用户来说,他们会遭受额外的延迟,因为即使他们在澳大利亚,他们也会访问重定向到香港服务器的 .hk 网站。该网站面向来自香港的国际学生,所以这对我来说是一个重要的问题。

我如何根据用户的位置重定向用户,而不是根据 TLD 将用户重定向到最近的 Web 服务器?

目前我正在使用 nginx、postgres 和 Django。假设我知道如何根据用户的 IP 地址估计用户的位置,我下一步要做什么?我会在什么水平上工作?我应该阅读什么主题?

Sam*_*eer 3

一种选择是使用 nginx 中的 GeoIP 模块并将用户重定向到适当的站点。在这种情况下,请求将很慢,直到重定向到适当的站点。

第二个选项是 DNS。使用基于 Geo DNS 的解决方案。您可以在此线程中阅读更多相关信息。如果用户使用 Google DNS 或 OpenDNS,GeoDNS 将不起作用