网站的动静分离实践(动静分离)

网站的动静分离实践(动静分离)

2023年6月29日发(作者:)

⽹站的动静分离实践(动静分离)1. 动静分离的实现思路动静分离是将⽹站静态资源(HTML,JavaScript,CSS,img等⽂件)与后台应⽤分开部署,提⾼⽤户访问静态代码的速度,降低对后台应⽤访问。动静分离的⼀种做法是将静态资源部署在nginx上,后台项⽬部署到应⽤服务器上,根据⼀定规则静态资源的请求全部请求nginx服务器,达到动静分离的⽬标。1.1 静态资源部署⾄CDN上我们的⽅案是直接将静态资源全部存放在CDN服务器上。因为之前项⽬中的JavaScript,CSS以及img⽂件都是存放在CDN服务器上,将HTML⽂件⼀起存放到CDN上之后,可以将静态资源统⼀放置在⼀种服务器上,便于前端进⾏维护;⽽且⽤户在访问静态资源时,可以很好利⽤CDN的优点——CDN系统能够实时地根据⽹络流量和各节点的连接、负载状况以及到⽤户的距离和响应时间等综合信息将⽤户的请求重新导向离⽤户最近的服务节点上。1.2 后端API提供数据后端应⽤提供API,根据前端的请求进⾏处理,并将处理结果通过JSON格式返回⾄前端。⽬前应⽤主要采⽤Java平台开发,因此应⽤服务器主要是Tomcat服务器,现在也开始有部分应⽤采⽤ node进⾏开发,应⽤服务器也开始使⽤node服务器。1.3 前后端域名动静分离因为静态资源和应⽤服务分别部署在不同的服务器上,因此会⾯临域名策略的选择。相同域名采⽤相同域名下,⽤户请求api时可以避免跨域所带来的问题,相对开发更为快速,⼯作量也相对⼩⼀些。不同域名前后端采⽤不同域名时,需要前后端开发时兼容跨域请求的情况,开发量相对上⼀种会稍多⼀些。解决跨域⽅式最常⽤的⽅式就是采⽤JSONP,还有⼀种解决⽅式使⽤CORS(HTTP访问控制)允许某些域名下的跨域请求。⽬前在我们的项⽬中JSONP⽅式更多,CORS因为需要浏览器⽀持,因此只会在APP内嵌HTML5,且需要POST⽅式时中使⽤。采⽤不同域名的⽅式优点也是⾮常明显的,不同域名采⽤两个域名服务器,不同的域名服务器根据请求的不同采⽤不同的负载均衡策略;⽽且不同域名也可以邮箱⽅式前端携带过多的Cookie。2. 动静分离的实现优缺点2.1 优点api接⼝服务化:动静分离之后,后端应⽤更为服务化,只需要通过提供api接⼝即可,可以为多个功能模块甚⾄是多个平台的功能使⽤,可以有效的节省后端⼈⼒,更便于功能维护。前后端开发并⾏:前后端只需要关⼼接⼝协议即可,各⾃的开发相互不⼲扰,并⾏开发,并⾏⾃测,可以有效的提⾼开发时间,也可以有些的减少联调时间减轻后端服务器压⼒,提⾼静态资源访问速度:后端不⽤再将模板渲染为html返回给⽤户端,且静态服务器可以采⽤更为专业的技术提⾼静态资源的访问速度。2.2 缺点不利于⽹站:搜索引擎的⽹络爬⾍⼀般是根据url访问页⾯,获取页⾯的内容后去掉没⽤的信息例如:CSS,JavaScript,然后分析剩下的⽂本内容;动静分离架构模式前端数据即在是由JavaScript来完成,这就会导致⽹络爬⾍得到的信息部分丢失。在开发中可以采⽤前端缓存不经常变化数据的⽅式来解决,只有哪些经常发⽣变化的数据才每次向后端请求。开发量变⼤,前后端交流成本升⾼:后端api返回的数据,往往是有⾃⾝逻辑在内的,⽐如返回数据中的包含status(1-处理中,2-处理成功,3-处理失败),前端需要理解status的不同含义,对应的前端操作需要理解(如,status =1 or status = 2,不可提交)。在业务⾼速发展时需要慎重考虑:因为开发量变⼤,如果在业务开始阶段,缺乏前端⼜要求开发速度很快,就需要慎重考虑这种⽅式的实现成本对业务发展的影响。3. 实现案例这个是在公司做的内嵌到app⾥的HTML5页⾯

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1687987584a64186.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信