动静分离的那些事

动静分离的特点

分布式

动静分离的本质就是分布式,把动态接口和静态的资源分开这样的话就可以减少后台服务器的压力,提高了静态资源的访问速度,因为静态资源是可以被缓存的,一旦有了缓存的话,用户访问的速度就回更快。后端就不需要再去渲染页面,以往的开发,html、jsp是需要服务器去渲染的,现在采用动静分离,静态资源都是交给客户端去渲染。

###前后端解耦 前后端分离的开发模式,前后端分开开发,分开部署。 ###静态归Nginx 静态资源,例如:js、css、html等静态资源都交由Nginx管理,从Nginx里面去读去和加载静态资源的。 ###接口的服务化 因为是动静分离,所以接口都是单独的去部署,通过集群去部署,这样就可以封装一些接口和数据,让前端去调用。 ##动静分离 ###静态数据 例如像css、js、html、images、audios、videos这些,如果需要修改,Nginx会根据最后一次的修改时间来刷新数据。 ###动态数据 动态数据往往都是以一个接口的形式去请求,动态数据可能第一次去请求和第二次去请求获得的结果是一样的。例如文章,文章列表数据。 ##动静分离的方式 ###CDN CDN是一个内容分发网络,他可以根据客户端的地域去选择最近的服务器来获取资源,加速访问速度。

Nginx

根据url来判断请求的是静态资源还是动态资源,如果是请求的静态资源,就将请求转发到静态资源集群,如果请求的动态资源,就将请求转发到动态资源的上游服务器。 ##动静分离的问题 ###跨域 解决方式:

  • SpringBoot
  • Nginx
  • jsonp

###分布式会话

  • 分布式缓存中间件,例如:redis