在基于地理位置的负载平衡中替换 html 文件中的 url?

Replace url in html files on load balance basing on geolocation?

我有一个提供静态 html 页面的 HTTP 网络服务器。

在页面中,它从固定域加载图像和 css,例如:

<img src="http://assets.mysite.com/1.jpg" />

实际上有几个不同的域提供相同的文件。例如。

我想要负载平衡根据访问者的地理位置将域 "assets.mysite.com" 替换给其他人。

例如,当我从欧洲访问相同的 url 时,我得到的 html 是:

<img src="http://assets-eu.mysite.com/1.jpg" />

当我从日本访问同一个 url 时,我得到的 html 是

<img src="http://assets-asia.mysite.com/1.jpg" />

我更喜欢 NGINX(或 G-WAN)。是否有可能仅通过负载平衡的一些配置或脚本设置来实现这一点?此替换对性能有何影响?

如果您的目标是尽可能好地执行,那么您应该在 DNS 请求时执行 geo-ip 负载平衡 - 用户在查询 Web 服务器之前被重定向。 CDN 就是这样工作的。

但是,如果您不能这样做并且想从 Web 服务器管理负载平衡,那么扩展的最佳方法是使用 AS(ISP 使用的网络)查找 table查找用户所在的区域。

这样做而不是搜索 IP 地址,将极大地减少数据库大小,从而加快操作速度。 IP 数据库提供更多详细信息,但更大。

对于 G-WAN,如果您想为不同的 MIME 类型实现不同的逻辑,您可以编写 connection handlercontent-type handler(后者也可能简化开发,因为您不会)不必解析请求来查找资源类型)。

如果数据库存储在本地(最好在 RAM 中),G-WAN C/C++/C# 脚本如果实施得当,不会显着增加延迟。