南征北战 双线路网站解决办法
|
源代码网整理以下 最近遇到了头大问题,一个网站为提高访问速度,分别拉了电信、网通两条线路,想实现电信从电信访问、网通用户从网通访问。 源代码网整理以下 最初的方案是分别建立两个相同的站,一个www1.xxx.com(电信)一个www2.xxx.com(网通),然后分别解析www1.xxx.com的A记录为电信的ip,www2.xxx.com为网通IP。 源代码网整理以下 这样做看上去没错,可是麻烦事又来了,该站后台使用mysql数据库,数据库必须是同一个,否则还得另外设置两个服务器的mysql保持同步。 源代码网整理以下 mysql倒是小事,原来的网页内的链接都是www.xxx.com/xxx....的,要都重新改成分别的www1和www2,还得保持同步,这麻烦就大了。 源代码网整理以下 记过仔细分析,最终采用了我们的方案,使用DNS的view功能,只使用一个www.xxx.com的域名,就很简单地解决了这个问题。 源代码网整理以下 Bind9有个特殊功能view(视图),使用该功能能够对不同的访问对象返回不同的IP。比如电信用户试图解析www.xxx.com,就返回电信的IP,而网通用户则返回网通的IP。这样根本不需要多个域名,只需要一个www.xxx.com就可以了。原有网站中的页面都不需要更改。 源代码网整理以下 下面是个named.conf示例: 源代码网整理以下 以下是引用片段: 源代码网整理以下 以下是引用片段: 源代码网整理以下 源代码网整理以下 这样就实现了对不同用户返回了不同的IP。 源代码网整理以下 (这只是个示例,match-clients中的网通IP表段不全。) 源代码网整理以下 其他的就很简单了。 源代码网整理以下 最终用户采用了Quick Enterpeise Linux 4.0,仅在一台服务器上就实现了双线路接入、策略路由、双IP网站访问、防火墙等全部功能。 从这里可以看到,xxx.com的域名解析同时包含在视图cnc和other区域中。视图cnc负责网通用户的解析。当match-clients中注明的网通网段用户发送的DNS解析请求,则从/var/named/xxx.com.cnc.hosts文件中返回www.xxx.com的网通IP。否则则由视图other处理,从"/var/named/xxx.com.hosts“文件中返回电信的IP。源代码网供稿. |
