进阶操作

ID #1011

如何实现域名的负载均衡

基础知识

在大型的网络应用中,使用多台服务器提供同一个服务是常有的事。但如何平均分配每台服务器上的压力就成了一个难题。把压力分散的方法有很多种,比如本例子的使用DNS负载均衡。

准备

实现负载均衡必须要有2台以上的服务器,本例子中假设有5台服务器,IP分别为

192.168.1.100 (电信)
192.168.1.101 (电信)
192.168.1.102 (电信)
10.10.10.100 (网通)
10.10.10.101 (网通)

并且5台服务器都在为www提供服务。

本例子再假设域名为foobar.com

为电信用户实现负载均衡

根据前面的资料,电信一共有3台www服务器,分别是

192.168.1.100
192.168.1.101
192.168.1.102

首先登陆DNSPod的後台,添加一个foobar.com的域名。

然後在 管理域名记录 中添加一条记录

主机记录 www
记录类型 A
线路类型 电信
记录值 192.168.1.100

点击增加

接着,再分别添加两条记录

主机记录 www
记录类型 A
线路类型 电信
记录值 192.168.1.101
主机记录 www
记录类型 A
线路类型 电信
记录值 192.168.1.102

为网通用户实现负载均衡

电信用户的记录添加完毕後,接着添加网通的。

网通的添加方法跟电信的没太大分别

主机记录 www
记录类型 A
线路类型 网通
记录值 10.10.10.100
主机记录 www
记录类型 A
线路类型 网通
记录值 10.10.10.101

至此,所有记录添加完毕

测试

测试记录的工具可以使用windows下面的nslookup或者*nix系统下面的dig

nslookup:

C:\Documents and Settings\Administrator>nslookup
Default Server:  ns.jlccptt.net.cn
Address:  202.98.0.68

> set q=a
> www.foobar.com
Server:  ns.jlccptt.net.cn
Address:  202.98.0.68

Non-authoritative answer:
Name:    www.foobar.com
Addresses:  192.168.1.100, 192.168.1.101, 192.168.1.102

如果是网通用户,可以得到下面的结果

C:\Documents and Settings\Administrator>nslookup
Default Server:  ns.jlccptt.net.cn
Address:  202.98.0.68

> set q=a
> www.foobar.com
Server:  ns.jlccptt.net.cn
Address:  202.98.0.68

Non-authoritative answer:
Name:    www.foobar.com
Addresses:  10.10.10.100, 10.10.10.101

dig:

wuhongshengdeibook-g4:~ wuhongsheng$ dig www.foobar.com

; <<>> DiG 9.2.2 <<>> www.foobar.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5166
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.foobar.com.                        IN      A

;; ANSWER SECTION:
www.foobar.com.         472     IN      A       192.168.1.100
www.foobar.com.         472     IN      A       192.168.1.101
www.foobar.com.         472     IN      A       192.168.1.102

;; Query time: 48 msec
;; SERVER: 202.106.0.20#53(202.106.0.20)
;; WHEN: Fri May 19 13:44:36 2006
;; MSG SIZE  rcvd: 64

wuhongshengdeibook-g4:~ wuhongsheng$

网通用户可以得到下面的结果

wuhongshengdeibook-g4:~ wuhongsheng$ dig www.foobar.com

; <<>> DiG 9.2.2 <<>> www.foobar.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5166
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.foobar.com.                        IN      A

;; ANSWER SECTION:
www.foobar.com.         472     IN      A       10.10.10.100
www.foobar.com.         472     IN      A       10.10.10.101

;; Query time: 48 msec
;; SERVER: 202.106.0.20#53(202.106.0.20)
;; WHEN: Fri May 19 13:44:36 2006
;; MSG SIZE  rcvd: 64

wuhongshengdeibook-g4:~ wuhongsheng$

进阶知识

Q:DNS轮询的时候,IP是如何给出的?
A:以本例子来说,IP将会按照以下方法返回给每次查询(不一定是每个用户)

100,101,102
101,102,100
102,100,101
100,101,102

其他问题

Q:我只有电信服务器(或网通),我该怎么做?
A:添加记录的时候,选择线路类型为通用即可。

Tags: -

Related entries:

更新日期:2007-03-02 07:29
作者Silence
修订: 1.0

Digg it! 打印 与朋友分享 输出为PDF文件
Propose a translation for Propose a translation for
本内容对解决您的问题有帮忙吗

平均分 4.48 来自 5 (29 次评分)

(完全没有帮助) 1 2 3 4 5 (对我的帮助非常大)

你不能对该内容发表评论