对于大型网站技术的理解,可以从架构技术原理的组织方式以架构要素作为维度,从系统性能、可用性、伸缩性、扩展性、安全性几个角度阐述网站架构的技术要点。还有另一种较为直观的组织方式,是从不同架构层次所使用的网站架构技术这个维度进行描述的。
网站系统架构层次如下图所示:
一、前端架构
前端指用户请求到达网站应用服务器之前经历的环节,通常不包含网站业务逻辑,不处理动态内容。
浏览器优化技术
并不是优化浏览器,而是通过优化响应页面,加快浏览器页面的加载和显示,常用的有页面缓存、合并HTTP减少请求次数、使用页面压缩等。
CDN
内容分发网络,部署在网络运营商机房,通过将静态页面内容分发到离用户最近最近的CDN服务器,使用户可以通过最短路径获取内容。
动静分离,静态资源独立部署
静态资源,如JS、CSS等文件部署在专门的服务器集群上,和Wb应用动态内容服务分离,并使用专门的(二级)域名。
图片服务
图片不是指网站Logo、按钮图标等,这些文件属于上面提到的静态资源,应该和JS、CSS部署在一起。这里的图片指用户上传的图片,如产品图片、用户头像等,图片服务同样适用独立部署的图片服务器集群,并使用独立(二级)域名。
反向代理
部署在网站机房,在应用服务器、静态资源服务器、图片服务器之前,提供页面缓存服务。
DNS
域名服务,将域名解析成IP地址,利用DNS可以实现DNS负载均衡,配置CDN也需要修改DNS,使域名解析后指向CDN服务器。
二、应用层架构
应用层是处理网站主要业务逻辑的地方。
开发框架
网站业务是多变的,网站的大部分软件工程师都是在加班加点开发网站业务,一个好的开发框架至关重要。一个号的开发框架应该能够分离