最便宜的高负载网站架构
1, LVS做前端四层软件均衡负载
LVS是基于IP虚拟分发的规则, 不同于apache,squid这些7层基于http协议的反向代理软件, 前者在性能上能得到更好的保证!
另外, 后者在处理http header信息时, 会显得很被动.
开源, 高性能, 这不就是我们所需要的吗?
另外, 针对大访问量, 还可以使用DNS轮询+LVS集群.
当然, 比起硬件均衡负载, 单点故障的风险会更大.
2,squid 做前端静态页面缓存, 包括 css, javascript
squid 是业内公认的优秀代理服务器,其缓存能力更让许多高负载网站青睐!(比如新浪,网易等)
使用他, 通过本机内存+ 磁盘的集群存储方案, 能够起到很好的加速作用!
使用squid, 也是大部分网站的节约成本之道.
3, lighttpd 提供图片, css, javascript 服务. 做到静态与动态分离.
采用lighttpd, 而不使用apache, 是因为它对静态内容的响应速度高于apache一到三倍.
这对于高负载网站是梦寐以求的.
加上, 在其前端部署了squid, 真正做到了, 超高命中率, 超快响应速度.
3,apache 用来处理php, url重定向, url过滤, 防洪水攻击等等.
apache是业内主流http服务器,比较看重它的稳定性, 扩展性.
使用它, 制作一些推广页面, 一些需要快速开发的页面, 最好不过了.
最重要的是, 它可以使用mod_jk或mod_proxy对复杂业务请求的进行代理.
比如, 将用户注册, 代理给jboss, 用java开发.
需要提一下的是, apache的module开发.
一句话 - 非常实用.
你可以只用apache提供的类库, 就能很方便的开发一个http的日志处理模块.
另外, 它也可以与squid 集成, 从而, 形成一条很完美的加速链.
4,JBOSS 用来处理含复杂的业务逻辑与充当JAVAEE容器的角色
JBOSS是red hat旗下的优秀中间件产品,在java开源领域小有名气,并且完全支持j2ee规范的,功能非常强大
使用他,既能保证业务流程的规范性,又可以节省开支(免费的)
java的优势, 就不多说了.
5,mysql数据库
使用mysql数据库,单机达到百万级别的数据存储,及快速响应,应该是没问题的.
如果网站本身访问增长很快, 可以考虑mysql 集群.
从而获得高伸缩性, 高访问性能.
不管是通过 master+slaver的主从结构.还是根据业务进行分表.
mysql的集群特性, 都是网站首选的.
6,memcache作为分布式缓存
基于中央存放的缓存载体, 一般都需要集群.
基于c写的memcache, 可以很自豪的顶起高性能缓存的帽子.
它几乎可以缓存任何数据. 包括 html, java对象, 文件等等.
重要的是, 它给jboss, apache等服务器实现高效的缓存方案, 提供了有力的保证.
LVS
======================================
.....
apache mod_jk / mod_proxy+ jboss
apache mod_jk / mod_proxy+ jboss
.....
squid + lighttpd
squid + lighttpd
....
=================================
....
mysql + memcache
mysql + memcache
......
================================