LAMP分离式之web服务器负载均衡架构之基于NFS共享式Discuz论坛
服务 | IP地址规划 | 软件版本 | 官方网站 |
DNS调度服务器 | 192.168.1.120 | bind-9.8.2-0.23 | http://www.isc.org/downloads/bind/ |
apache1前端服务器 | 192.168.1.119 | http-2.4.9.tar.bz2 | http://www.apache.org/ |
apache2前端服务器 | 192.168.1.121 | http-2.4.9.tar.bz2 | http://www.apache.org/ |
PHP-fastfcg-NFS共享 | 192.168.1.122 |
php-5.4.26.tar.bz2 xcache-3.0.3.tar.bz2 |
|
Mysql服务器 | 192.168.1.123 | mysql-5.5.33-linux.2.6-x86.64.tar.gz | http://dev.mysql.com/downloads/ |
以上主机都是CentOS6.4 64位系统。
上图详解:
实验目的:
通过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
三)检查配置,解析启动DNS服务
四)配置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)配置虚拟主机
五)安装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端口
六)测试连接
七)测试php和mysql的联通性
八)配置NFS,把php本机的论坛目录共享到web服务器端。
vim /etc/exports
/etc/init.d/nfs restart
在web1服务器上挂载过来共享的网站目录。
在web2服务器上挂载过来php服务器上共享过来的网站
挂载过来的内容
浏览器测试访问:
安装数据库:
客户端访问不同的web分别发帖子,看是否能同步。
可以看出来,在一台机子上发表帖子,能实现同步。
到这里是不是想知道,DNS是否轮询了?是否web服务器实现同步?下面测试说结果。
通过域名访问看结果http://www.shunzi.com/upload/forum.php
dig -t A www.shunzi.com @192.168.1.123(dns服务器)
在一次的执行一遍看是否轮询?
http://www.shunzi.com/upload/forum.php访问
dig -t A www.shunzi.com @192.168.1.123(dns服务器)查看
PS:
从上面的例子可以看出来,dns轮询生效,web负载成功。减小了服务器的访问量。
转载于:https://blog.51cto.com/shunzi/1384806