根据几种典型的WEB服务器应用的特点做出的系统架构建议
1、 静态为主的WEB应用
特点:小文件多,读操作频繁
实现方法:
硬件:要求服务器内存大,最好是64位系统,支持大内存,保证带宽。
软件:apache或者nginx构建,若用户量大、并发数大,应该组多台WEB集群,甚至
前端增加cache服务器,常用cache软件有Squid\Varinsh等
2、 以动态为主的WEB应用
特点:写操作频繁,如java、php、perl、cgi等,严重消耗CPU
实现方法:
硬件:CPU高、多核,内存大,最好是64位系统,支持大内存,配置虚拟内存,保证带宽。
软件:apache构建,使用加速软件,提高访问效率,如Memcache
3、 数据库应用
特点:消耗内存与I/O,数据量大,重要。
实现方法:
硬件:要求服务器内存大,最好是64位系统,支持大内存,读写较快的磁盘陈列,保证带宽
软件:把web前端与DB分开,用户量大时,应考虑数据库做负载,表太大时,应该考虑拆分表,通过索引关联处理,优化程序源代码,尽量不大量使用where\order by\group by等排序语句,以免CPU出现频颈;甚至读写数据库分离,通过缓存方式提高数据库性能,使用使用加速软件,提高访问效率,如Memcache。另外做好数据备份非常重要。
4、 软件下载应用
特点:带宽消耗严重,存储性能要求高。
实现方法:
硬件:读写较快的磁盘陈列,保证带宽
软件:采用Lighttpd架构,使用异步I/O方式处理资源下载,采用多台,多点服务器分流分担下载。
5、 流媒体应用
特点:视频会议、点播、远程教育、在线直播,存储I/O与带宽要求高
实现方法:
硬件:读写较快的磁盘陈列,保证带宽
软件:采用HelixServe、Flumotion等软件架构,建立优良的存储策略、调试策略、传输策略、代理服务器缓存策略,采用视频格式优化、智能技术控制发送、分段缓存、动态缓存、内存池、线程池等技术