比如在中国,被人为划分成两大区域,北方是网通,南方是电信。这两个网络之间互访是比较慢的。作为大型网站,一种解决办法是将全部服务器架设在双线或三线ISP处,由ISP来提供路由上的选择。这样做,线路的成本会比较高。另一种办法就是将服务器架设在两边,南方一台,北方一台,然后由服务器自己选择,如果IP在电信,就转发请求到南方的服务器,如果是网通就转发到北方的服务器。
再扩大范围,可以将美国来的请求交由美国服务器处理,这样也缩短了用户在路由上的等待时间。这就是内容分发网络。
而作为这个网络上的所有节点,都可以当成虚拟服务器来看待。至于在各地的服务器如何做负载均衡,可以由各节点之间完成。
准备工作如下:你需要下载如下软件以实现上述功能
Nginx,BIND,GeoIP,Varnish
接下来是编译和安装bind9和geoip
# tar -xzvf bind-924targz
# tar -xzvf GeoIP-146targz
# cd GeoIP-146
# /configure –prefix=/usr/local/geoip
# make
# make install
# cd
# patch -p0 < bind-924-geodns-patch/patchdiff //给bind9打补丁,让bind9直接支持geoip库
# cd bind-924
# CFLAGS=”-I/usr/local/geoip/include” LDFLAGS=”-L/usr/local/geoip/lib -lGeoIP” /configure –prefix=/usr/local/bind
# make
# make install
装好bind后我们来制作namedconf
view “us” {
// 匹配北美的客户端 US & Canada
match-clients { country_US; country_CA; };
// Provide recursive service to internal clients only
recursion no;
zone “cdnxiangleicom” {
type master;
file “pri/xianglei-usdb”;
};
zone “” IN {
type hint;
file “namedca”;
};
};
view “latin” {
// 匹配到南美国家
match-clients { country_AR; country_CL; country_BR; };
recursion no;
zone “cdnxiangleicom” {
type master;
file “pri/xianglei-latindb”;
};
zone “” IN {
type hint;
file “namedca”;
};
};
照此办理,你也可以匹配到欧洲,非洲等等,然后来开始制作nginx和varnish
注意,以上内容是你要在主节点服务器上做的,主节点服务器只负责对DNS请求进行转发。
约定一下,我们将Bind服务器叫做动态节点服务器,Nginx+Varnish叫做边界服务器。
以下内容是副节点服务器需要做的,也就是实际在某个地区放置的服务器
# /configure –prefix=/usr/local/nginx –with->DNS是英文Domain Name System的缩写,中文意思是“域名系统”,是Internet网络世界中用于将域名和IP地址相互映射的一种机制。
在互联网中,每个网站都被分配了一个IP地址。例如,>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)