(1)应用和静态资源分离
刚开始的时候应用和静态资源是保存在一起的,当并发量达到一定程度时就需要将静态资源专门保存到专门的服务器中,静态资源主要包括图片、视频、js、css和一些资源文件等,这些文件没有状态,所以分离比较简单,直接存放到相应的服务器就可以了。
(2)页面缓存
页面缓存是将应用生成的页面缓存起来,这样就不需要每次都重新生成新的页面了,从而可以节省大量的CPU资源,如果将缓存的页面放到内存中速度就更快。页面缓存主要使用在数据量很少发生变化的页面中,但是有很多页面是大部分数据都很少发生变化,而其中有很少一部分数据变化的频率却非常高,比如一个显示文章的页面正常来说是完全可以静态化的,但是如果有顶和踩的功能而且显示的有相应的数量,这个数据的变化频率就比较高了,这就会影响静态化,在电商系统中显示商品详情的页面中的销售量也是这种情况,对于这个问题可以先生成静态页面然后使用ajax来读取并修改相应的数据,这样就可以一举两得了,既可以使用页面缓存也可以实时显示一些变化频率高的数据了。
(3)集群与分布式
集群和分布式处理都是使用多台服务器进行处理的,集群是每台服务器都具有相同的功能,处理请求时调用哪台服务器都可以,主要起风流作用,分布式是将不同的业务放到不同的服务器中,处理一个请求可能需要用到多台服务器,这样就可以提高一个请求的处理速度,而且集群和分布式也可以同时使用。
(4) 反向代理
反向代理服务器可以和实际处理请求的服务器在同一台主机上,而且一台反向代理服务器也可以访问多台实际处理请求的服务器。主要有三个作用:1)可以作为前端服务器跟实际处理请求的服务器集成2)可以做负载均衡3)转发请求
(5)CDN
(6)底层优化