我有一个网站,让它成为www.site.com/(ASP NET MVC,但这并不重要)我有另一个网站,让它成为www.secondsite.vi/(它在越南举办)。 网站的结构是一样的,数据库中的数据是不同的。
我想要做以下事情:用户导航到www.site.com/。 如果他的IP地址是越南语,那么他将被带到www.secondsite.vi/(但在URL栏中,他仍然看到www.site.com/),否则他将被带到www.site.com/。 而且,当用户从越南inputwww.site.com/时,他的请求不应该到达主站的主机(ping太长)
你能提出,这个怎么办? 做这种事情最好的做法是什么? 我听说可以使用Amazon Route 53来做到这一点。如果是这样,我应该怎么做才能将两个站点添加到它并分割IP地址或地理信息范围? 提前致谢!
1. route53-geo
我的理解是,AWS 53路由器目前不支持地理DNS(但由于他们一直推出新function,这可能已经过时了!)
http://www.dnscomparison.com/route53.html “目前不支持地理DNS服务,但将来会增加对此服务的支持,您可以将Route 53 DNS服务与任何其他Amazon Web Service进行整合。
AWS的支持说,这个function是重中之重,并且即将到来(大约在2011年)。 https://forums.aws.amazon.com/thread.jspa?threadID=75241
2. mod_geoip
如果您使用的是Apache2 / Linux,则可以安装一个工具(如mod_geoip2),根据用户的IP地址将用户redirect到所需的地理实例。
这个计算器的问题有一个例子,显示如何匹配一个地区,并发送用户到其他网站与302redirect;
RewriteEngine On GeoIPEnable On GeoIPDBFile /var/share/GeoIP/GeoIP.dat RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^VN$ RewriteRule ^$ http://www.secondsite.vi/$1 [L,NC,QSA]
然后将非越南籍IP访问者反弹回其他服务器configuration中的美国托pipe站点;
RewriteEngine On GeoIPEnable On GeoIPDBFile /var/share/GeoIP/GeoIP.dat RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^VN$ RewriteRule ^$ http://www.site.com/$1 [L,NC,QSA]
虽然在您的情况下,如果您的链接速度非常慢,可能根本不需要联系美国服务器,但实际上,对“/”的GET请求实际上只有less量的请求和响应数据(每个方向200-300字节)对于“位置: http : //www.secondsite.vi ”就够了。 301redirect和其他响应头。 事实上,你可以修改上面的节来删除另一边的一个进一步的redirect,通过指定这样的“家”页面;
RewriteEngine On GeoIPEnable On GeoIPDBFile /var/share/GeoIP/GeoIP.dat RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^VN$ RewriteRule ^$ http://www.secondsite.vi/index.html [L,NC,QSA]
3. Geo-DNS有一些商业服务提供商;
通常你定义了一堆地区,A,CNAMElogging是根据原始的客户IP提供的;
http://www.geoscaling.com/
http://dyn.com/dns/dynect-managed-dns/
http://www.dnsmadeeasy.com/services/global-traffic-director/
http://www.zerigo.com/news/launch-of-geodns-geolocation-load-balancing
(我没有亲自使用过他们中的任何一个,但是我曾经看过这些服务以获得以前的要求,所以我很想知道它是如何实现的)
4.运行你自己的地理感知域名服务器
你显然需要解决caching方面的问题,并且适当地物理定位你的DNS服务器。 (所以这个解决scheme只会在你有特殊情况时才会出现)
但是,您可以安装扩展到绑定的DNS服务器(或DNSSIME等),将启用地理识别为您自己的DNSlogging;
“如何使用BIND和MaxMind实现GeoDNS” http://phix.me/geodns/
那么,我会build议使用CDN,而不是做Geocast IP。 例如,法国的OVH每个月给10欧元一个专用的IP(所以你总是给DNS一个A字段),但是他们在世界各地有多个服务器,它会自动把你的亚洲访客连接到他们最近的CDN。
你有10个后端,这意味着你可以放弃10个服务器,并且本地CDN将进入最快的后端,所以你可以input你的美国和你的越南服务器在不同的后端,你的越南访问者将永远访问最快的一个。
如果你不想这么做的话,我会推荐DNS Made Easy,但不是像Global Traffic Director那样的“大提议”,而是他们最小的提议(Small Business,每年29,95),而是一个“DNS Failover “选项(每年4.95美元),总是监视多达5个后端服务器。 你可以这样说,如果一个后端花费超过1秒钟的时间来回答你的客户端,那么它会自动转到第二个,所以,如果你的越南服务器比你的美国服务器最快回答,它将被select回答你的越南游客