一、架构拓扑
二、架构说明
客户端通过DNS解析后将拿到www.bbs.com域名的IP地址,通过DNS配置两条资源记录以实现调整轮询来达到负载均衡,后端通过NFS存储共存Discuz程序,以达到数据一致性,用户的数据存储在MySQL服务器中,MySQL数据是分离的,这样可以减少前端Web服务器的压力。
三、架构的规划
主机 | IP地址 | 提供服务 |
客户端 | 172.16.190.9 | - |
DNS服务器 | 192.168.0.190 | 解析www.bbs.com |
Web-01服务器 | 172.16.9.28 | 提供www.bbs.com服务 |
Web-02服务器 | 172.16.9.29 | 提供www.bbs.com服务 |
NFS服务器 | 172.16.9.35 | 提供共存存储站点程序 |
MySQL服务器 | 172.16.9.41 | 提供站点数据存储 |
四、搭建LAMP平台
这里就不多介绍LAMP平台的搭建,请参考LAMP相关的博文。
五、NFS服务器的配置
(1)创建用户共存的目录
# mkdir /share/web/discuz -p
(2)解压Discuz程序包到discuz目录中
[root@NFS discuz]# unzipDiscuz_X3.2_SC_UTF8.zip
(3)编辑/etc/exports文件创建NFS共存属性
[root@NFS ~]# vim /etc/exports /share/web/discuz/upload172.16.9.0/16(rw,sync,no_root_squash)
(4)启动NFS服务
[root@NFS ~]# service rpcbind start Starting rpcbind: [ OK ] [root@NFS ~]# service nfs start Starti [ OK ] Starting NFS quotas: [ OK ] Starting NFS mountd: [ OK ] Starting NFS daemon: [ OK ] Starting RPC idmapd: [ OK ]
(5)检查共存目录
[root@NFS ~]# showmount -e 172.16.9.35 Export list for 172.16.9.20: /share/web/discuz/upload 172.16.9.0/16
六、配置DNS服务
DNS的的详细配置请参考“DNS应用:http://wuday.blog.51cto.com/2623944/1638804”
$TTL 86400 @ IN SOA ds1.bbs.com. admin.bbs.com. ( 20150501201 9H 2H 7D 1D) IN NS ds1 IN NS ds2 IN MX 10 mx1 IN MX 20 mx2 ds1 IN A 192.168.0.190 ds2 IN A 192.168.0.191 mx1 IN A 192.168.5.21 mx2 IN A 192.168.5.26 www IN A 172.16.9.29 www IN A 172.16.9.28
七、配置Web服务器
在Web服务器上的配置Web-01和Web-02上的配置都一样的,这里只贴出Web服务的虚拟机配置
(1)配置虚拟主机
<VirtualHost *:80> ServerAdmin admin@bbs.com DocumentRoot "/web/bbs" ServerName www.bbs.com ServerAlias bbs.com ErrorLog "logs/bbs.com-error_log" CustomLog "logs/bbs.com-access_log" combined <Directory "/web/bbs"> AllowOverride None Options None Require all granted </Directory> </VirtualHost>
(2)创建目录并挂载NFS
# mkdir -p /web/bbs # showmount -e 172.16.9.35 #查看NFS共享存储情况 Export list for 172.16.9.35: /share/web/discuz/upload 172.16.9.0/16 # mount -t nfs 172.16.9.35:/share/web/discuz/upload/web/bbs/ #挂载NFS共享存储
(3)更改站点目录属主、属组
# cd /web/bbs/ # chown -R apache.apache ./*
(4)启动Httpd服务
# service httpd start
八、MySQL服务器的配置
(1)创建数据并授权
> CREATE DATABASE discuzbbs; > GRANT ALL ON discuzbbs.* TO'disbbs'@'172.16.9.%' identified by 'disbbs@pass'; > FLUSH PRIVILEGES;
九、安装配置使用Discuz程序
在本地网络中把DNS指向192.168.0.190,在浏览器输入www.bbs.com就能访问了,当第一次使用Discuz要进行安装,安装这里就不详细的介绍,请参考我相关LAMP的博文。
小结:
此架构有很多的地方还需要改进:
1)DNS无法判断Web服务器是否访问压力过大;
2)DNS无法判断Web服务器是否宕机;
3)NFS存储是否宕机
4)对于大并发NFS是无法承受的等等;
转载于:https://blog.51cto.com/wuday/1650793