某网站随着知名度的提高,用户访问量日渐增多,近段时间以来,由于访问量的激增,服务不可用的情况时有发生。针对这种状况,结合实际情况,设计了一套解决方案。

技术实现

1、负载均衡。2台同样配置的linux服务器,内核支持lvs,配置keepalived工具,即可实现负载转发。一旦其后的真实服务器出现故障,keepalived会自动把故障机器从转发队列删除掉,等到故障修复,它又会自动把真实服务器的地址加入转发列表。由于lvs支持会话保持,因此对于bbs 这样的应用,一点也不用担心其登录丢失。

2、mysql主从复制。即保证数据的安全,又提高了访问性能。我们在前端的每个web服务器上加入mysql proxy这个工具,即可期待实现读写的自动分离,让写的操作发生在主数据库,让查询这类读操作发生在从数据库。

3、nagios是一个开源的,受广泛欢迎的监控平台。它可对主机的存活、系统资源(磁盘空间、负载等)、网络服务进行实时监控。一旦探测到故障,将自动发送邮件(短信)通知故障。

4、备份。包括web数据和数据库服务器的备份。对于web服务而言,GNUtar即可实现备份的一切愿望。简单的设置一下crontab就可以让系统在我们做梦的时刻老老实实的帮我们备份了。但是,由于空间的限制,不可能一直备份下去,所以要做一个合适的策略,以不断的用新的备份去替换陈旧的备份数据;多少天合适?看磁盘容量吧。对于数据库,先mysqldump一下,再tar.完成这些工作后把备份文件传输到备份服务器集中。一个比较省事的方法是把备份服务器以NFS方式挂接到web服务器及数据库服务器。

5、web服务器。至少包括apache和mysql proxy这两个组件。Apache做bbs和blog的容器,以虚拟机方式把用户的请求转发到bbs目录或blog目录。

6、安全措施。包含两层安全,一层是主机本身,另一层是结构(mysql从外部网络隔离)。实践证明,iptables是一个非常值得信赖的防火墙工具。在实际应用中,采取先关门后开窗的策略,大大增强系统的安全性。

组件

一、 硬件: 负载均衡2台(dell 1950),web服务器2-3台(dell1950),数据库2台(dell 2950),存储NAS(5T格式化后容量),备份4u服务器(带磁盘阵列5T容量),监控服务器1台(dell1850).

二、 软件:操作系统centos 5(定制安装),负载均衡ipvsadm、keepalived,监控nagios,web服务apache+php等,数据库mysql,数据库代理mysql proxy.

进度安排

1、 lvs负载均衡配置及测试:2-3天

2、 web服务器配置:2-3天

3、 mysql主从服务器配置:1-3天

4、 web数据迁移:1天

5、 数据库数据迁移:2天

6、 上线测试:1-2天

7、 正式上线:2天

通过实施该方案,网站的性能和可靠性都大大地得以提高,当然,这个方案不只适用与网站,也可以用于其它要求比较高的应用环境。