服务IP地址规划软件版本官方网站
DNS调度服务器192.168.1.120bind-9.8.2-0.23http://www.isc.org/downloads/bind/
apache1前端服务器192.168.1.119http-2.4.9.tar.bz2http://www.apache.org/
apache2前端服务器192.168.1.121http-2.4.9.tar.bz2http://www.apache.org/
PHP-fastfcg-NFS共享192.168.1.122

php-5.4.26.tar.bz2

xcache-3.0.3.tar.bz2

http://php.net/downloads.php

http://xcache.lighttpd.net/

 

Mysql服务器192.168.1.123mysql-5.5.33-linux.2.6-x86.64.tar.gzhttp://dev.mysql.com/downloads/

以上主机都是CentOS6.4 64位系统。

上图详解:

wKioL1My6aDBsReFAAJMdOBMt18354.jpg

实验目的:

    通过DNS轮询让web服务器实现负载工作,web和php通信通过fcgi,php上安装discuz论坛,通过NFS网络共享协议,把网站共享出去,web服务器把共享的目录网站挂载到本地,提供给用户使用。最终的结果就是,当访问web1的添加的内容,再次的访问web2能看到添加的内容,实现服务数据同步。

实现步骤如下:

一)安装DNS

yum -y install bind-*

修改主配置文件,配置DNS轮询

options {
directory "/var/named";
rrset-order { order random; };
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost." IN {
type master;
file "named.localhost";
};
zone "shunzi.com." IN {
type master;
file "shunzi.com.zone";
};
在 named.conf 中可以设置 bind 的 round-robin 的给出结果的顺序:
rrset-order 支持三个参数:fixed, random, cyclic 。
fix 会将多个A记录按配置文件的顺序固定给出
random 会随机给出
cyclic 会循环给出

二)区域配置文件shunzi.com.zone

wKioL1My8nGSUXf2AAEEjDbP3rM062.jpg

三)检查配置,解析启动DNS服务

wKiom1My80TiSZ2bAAT2MgUb__E523.jpg

四)配置web服务器,,两台web服务器操作相同,这里只在一台做演示。

1)安装apache参考http://shunzi.blog.51cto.com/8289655/1381677

2)开启cgi模块,配置和php的结合

vim /etc/httpd24/httpd.conf

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

DirectoryIndex index.php index.html

#DocumentRoot "/usr/local/apache/htdocs"主站点注释掉,因为启用了虚拟主机。

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

Include /etc/httpd24/extra/httpd-vhosts.conf开启虚拟主机

3)配置虚拟主机

wKiom1MzAF6RGjRkAAFDOG9kKho131.jpg

五)安装php,配置fcgi。需要创建和fcgi一样目录

 php安装参考:http://shunzi.blog.51cto.com/8289655/1381877

vim php-fpm.conf

1
2
3
4
5
6
7
pid = /usr/local/php/var/run/php-fpm.pid 启动pid文件 
error_log = log/php-fpm.log启动错误日志 
listen =  192.168.1.115:9000监听端口写本机的。 
pm.max_children = 50最多最大子进程数 
pm.start_servers = 5默认启动几个子进程 
pm.min_spare_servers = 3最小空闲数 
pm.max_spare_servers = 6最大空闲数

 /etc/init.d/php-fpm start启动9000端口

六)测试连接

wKioL1MzEc7xd0hzAAHR4skFFcg095.jpg

七)测试php和mysql的联通性

wKiom1MzEvSQsLRBAACYb_efyAQ329.jpg

wKioL1MzEvvAMNe5AACWBJAky58775.jpgmysql和php通了。

 八)配置NFS,把php本机的论坛目录共享到web服务器端。

vim /etc/exports

wKiom1MzFSiztk11AABg_h-p9T4144.jpg

/etc/init.d/nfs restart

在web1服务器上挂载过来共享的网站目录。

wKioL1MzFVDBKtg4AAHbIVkxqFw607.jpg

在web2服务器上挂载过来php服务器上共享过来的网站

wKiom1M0RqmjCPaPAABaG8bdrNs959.jpg

挂载过来的内容

wKioL1M0RrXAn-QDAAExsTU7zCU277.jpg

浏览器测试访问:

wKiom1MzFaDhv0t_AANTGSoWFiY347.jpg

安装数据库:

wKiom1M0QNOwYen4AAFYdQLWnJA573.jpg

客户端访问不同的web分别发帖子,看是否能同步。

wKiom1M0QreSL6zhAAI9pbf0Y8E261.jpg

wKioL1M0Qp6gA_k3AALPEwdvThk151.jpg

wKiom1M0QunzZNjZAAJ-9oLSFu4398.jpg

可以看出来,在一台机子上发表帖子,能实现同步。

到这里是不是想知道,DNS是否轮询了?是否web服务器实现同步?下面测试说结果。

通过域名访问看结果http://www.shunzi.com/upload/forum.php

dig -t A www.shunzi.com @192.168.1.123(dns服务器)

wKiom1M0RIviSZS8AAFFmW8TpQw550.jpg

在一次的执行一遍看是否轮询?

http://www.shunzi.com/upload/forum.php访问

dig -t A www.shunzi.com @192.168.1.123(dns服务器)查看

wKiom1M0RbbxuFlxAAHWM9C90rs326.jpg

PS:

    从上面的例子可以看出来,dns轮询生效,web负载成功。减小了服务器的访问量。