1、�单机部署
这种部署方式应该是绝大部分草根时期,快速开发网站并上线首选。应用程序、数据库、文件等所有资源都集中在一台 Server上,投入少经济实惠,部署简单。
2、数据库独立部署
此时有两台服务器:Web Server 和 DB Server,后者是专门用于运行数据库程序的。Web Server 包括了SiteServer CMS系统,以及由CMS系统发布生成的所有站点(包括Html、Images、Files等资源文件)。
此时 DB Server 可以放在内网不对外网所见,不能被外网访问,从而使得DB Server更加安全。
3、CMS独立部署
随着网站业务的发展,一台Web服务器逐渐不能满足需求,越来越多的用户访问导致性能越来越差,这时候,就需要将CMS系统和Web站点分离,此时整个网站使用三台服务器:CMS Server 、Web Server 和 DB Server 。
此时 CMS Server 和 DB Server 可以放在内网不对外网所见,不能被外网访问,从而使得整个系统的安全性得到大幅提高,尤其是CMS Server不能被外网访问到。
具体实现就是CMS管理员(比如编辑人员)通过内网访问SiteSever CMS后台,然后把CMS生成的静态页面以及上传上来的Images和Files等资源文件一起同步到外网的Web服务器,网站如果需要实现交互(表单提交、文章点击量等)功能的话,需要把Bin文件夹部署到Web服务器上,然后直接连接DB服务器。
4、文件独立部署
随着网站业务进一步发展,越来越多的文件、图片、视频等资源文档存储在Web服务器上导致Web服务器存储空间严重不足,这时候,就需要将网站页面和网站�文件分离,此时整个网站使用四台服务器:�CMS服务器,Web服务器、File服务器和DB服务器。其中File服务器专门用于存储网站的图片、附件等资源文档。
具体实现就是CMS管理员(比如编辑人员)通过内网访问SiteSever CMS后台,然后把CMS生成的静态页面同步到外网的Web服务器,同时把CMS后台上传上来的Images和Files等资源文件同步到外网File服务器。网站如果需要实现交互(表单提交、文章点击量等)功能的话,需要把Bin文件夹部署到Web服务器上,然后直接连接DB服务器。
5、API独立部署
为了进一步提高前台用户访问网站的速度,Web服务器的性能有必须进一步优化,那就需要进行动态程序和静态页面分离。即把网站前台实现交互的一些功能程序和接口单独部署到独立的API服务器上。
动静分离是提高网站响应速度的一种常用方式。将动态请求与静态请求分离开,尽量减少对应用服务器的压力。同时,可以再进一步对静态请求,进行缓存和CDN加速,以加快响应速度。需要开发人员配合(把静态资源放独立站点下)。
6、应用服务器集群
当有一台服务器的处理能力、存储空间不足时,不要企图去更换更强大的服务器,对于大型网站而言,不管多么强大的服务器,都满足不了网站持续增长的业务需求。此时,应该考虑增加一台服务器分担原有服务器的访问以及存储压力。
其中第五步图中的Web服务器、File服务器以及API服务器都可以使用服务器集群的方式部署,以便分担原有服务器的访问以及存储压力。
7、数据库读写分离或数据库分库
单台数据库也感觉快撑不住了,一般都会尝试做“读写分离”,因为大部分互联网“读多写少”。目前大部分的主流数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库服务器的数据更新同步到另外一台服务器上,网站利用这一功能,实现数据库读写分离,从而改善数据库负载压力。
除了读写分离之外,还可以通过分而治之的手段将整个网站业务分成不同的产品线,如内容、操作日志、管理员、用户等拆分成不同的库,目前一个大型互联网公司都用分库甚至分表方案。