当前位置:论坛首页 > 新功能建议 > 其他

【已解答】使用CDN静态化前后端分离架构的网站方案

发表在 新功能建议2021-10-13 14:30 [复制链接] 1 3663

我是做外包的,最近接了很多前后端分离架构的网站项目。由于这种架构先天不利于搜索引擎收录,所以使用了 Nuxt.js 组件在服务器端渲染页面返回给蜘蛛。
这样的网站做多了,发现根本不用这么麻烦,可以改进 CDN,让 CDN 帮助完成页面渲染的任务。所以有了下面的方案。这个方案是我原创的,我翻遍了百度、Google
发现国内外现在都没有人在做,而现在正是前后端分离项目的高速成长期,很多项目需要这个服务。我自己不是做 CDN 项目,所以把我的想法分享出来,供有资源的
朋友借鉴、实施,给 CDN 服务提供一个新的盈利增长点。

**********************************************************************************************************

问题描述:
    1.小程序、手机浏览器第一次打开前后端分离的网页时加载很慢,因为需要下载大量 js css 文件,然后本地缓存。
    2.前后端分离的网站不利于搜索引擎收录,如商城类的网站,商品简介很少被收录到,导致销量惨淡。

应用场景:
    1.静态化首开页,提高小程序、手机端的网页的打开速度
    2.静态化内容页,便于搜索引擎收录

解决方案:
    将前后端分离的网站域名解析到 CDN 服务器上,CDN 根据 User-Agent 去判断是不是蜘蛛,
    如果是,则调用 CDN 上的客户端(可以对Selenium+ChromeDriver开源方案进行精简)去静态化页面,结果返回给蜘蛛;
    如果不是,返回 js、css 给用户的浏览器去动态渲染页面。
    注:可以单独部署一套升级版的 CDN 服务器,与现有的隔离,做成专为前后端分离网站提供服务的方案,这样不会影响原有服务器的性能和吞吐量。

    用 CDN 静态化页面的好处是通用性强,适合不同类型前后端分离的网站,可以做成平台【租给】其他人使用。
    减少服务器端的代码量(不用 Nuxt.js 了)、降低部署难度(不用在 Nginx 上进行蜘蛛判断,再路由请求),提高服务器性能(不用服务器去渲染页面了)。

备注:
    CDN 必须可以接收参数,指定哪个页面需要静态化,哪个页面不需要静态化。
    希望 CDN 服务商能提供 SDK,便于将 Post 请求转发给源服务器,这样隐藏源服务器 IP,提高源服务器的安全性。
    另外 SDK 也能加入指定静态化局部页面的功能,而不是整个页面,这样网页调用更加模块化,方便程序员拼接页面、局部功能迭代。

安全隐患:
    CDN 可能受到黑客攻击,黑客伪造 User-Agent 为搜索引擎,然后让 CDN 静态化全站页面,浪费 CDN 的 CPU、内存资源。
    解决方案:可以引入黑、白名单,将需要静态化的 URL 写入白名单,这样避免被黑客消耗掉 CDN 资源。

**********************************************************************************************************

如果上面的方案有纰漏,无可行性,望留言告知我,让我也能集思广益。
使用道具 举报 只看该作者 回复
发表于 2021-10-13 19:10:01 | 显示全部楼层
您好,架构前后端分离,尽量在代码上实现。
您看下有没有带CDN-WAF的这样的,可以实现静态文件内容分发外,还有防御的功能,没有的话可以配合我们的付费插件防火墙
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

立即付费处理

工作时间:09:00至24:00

快速回复 返回顶部 返回列表