静态网站架构的演进和最佳实践

news/2024/5/20 12:31:34/文章来源:https://blog.csdn.net/CODING_devops/article/details/106768091

作者:CODING - 杨周

新冠肺炎期间,约翰霍普金斯大学开发的疫情地图网站单日 PV 达 10 亿次,查看源代码可以看出它是一个单页应用(single-page application,缩写 SPA),JS 调用后端 API 返回动态数据。

那么,部署一个 10 亿 PV 的静态网站需要购买几台服务器?

答案是:0 台!

在云计算时代,静态网站已不再需要服务器,部署到云存储,开启 CDN 即可全球高速访问。

在这里插入图片描述

静态网站架构发展史

1991 年,万维网诞生,包括 3 项关键技术:统一资源标志符(URI)、HTML、HTTP。

初期的网站架构很简单,手写 HTML 或者用程序生成 HTML,通过 FTP/SCP 等方式上传到服务器。

HTML 文件并不需要运算,不消耗性能,一台服务器可以支撑很多个网站,而自行购买一台服务器只部署一个网站,成本高昂。所以网页托管服务(Web hosting service)应运而生,价格低廉甚至免费(通过嵌入广告盈利)。

1993 年,CGI 诞生,Web 服务器收到浏览器请求,执行对应的 CGI 程序,动态输出 HTML,这就是前后端混合的模式。在此之后的很多年里,前后端是一个项目,一起部署到服务器。

1999 年,Ajax 诞生。

2004 年,Gmail 大规模使用符合标准的跨浏览器 Ajax,前后端分离逐渐流行起来。

2006 年,AWS 发布了云存储,宣告了云计算时代的诞生。HTML/CSS/JS 作为简单的小文件,无需特殊处理,部署到云存储,再配合 CDN,成了静态网站架构最佳实践,有如下优点:

  • 成本低:云存储/CDN 比服务器便宜很多(比如「腾讯云 对象存储 COS」约 0.1 元/GB/月、腾讯云 CDN 每月赠送 10GB 流量),一个典型的公司官网一年费用不超过 10 元;
  • 访问快:CDN 能在全国甚至全球快速访问,比服务器更快。

2010 年起,AngularJS、Vue.js、React 等框架陆续诞生,开发的单页应用(SPA)使用 Ajax 技术实现了彻底的前后端分离,也意味着前后端单独部署。

目前,静态网站有 2 种:

  • 无内容的单页应用(SPA):React/VUE 等框架开发的应用;
  • 有内容的 HTML:手写或「程序生成 HTML」;

警告:React/VUE SPA 不带内容,难以被搜索引擎收录,不适合作为公司官网、博客。如果有 SEO 需求,推荐使用 MkDocs、Hexo、VUE Nuxt、React Next。

实战:静态网站自动部署到云存储

通过「持续集成」生成 HTML,自动部署到「云存储」,变成静态网站。

  1. 在「腾讯云 对象存储 COS」中创建一个「公有读私有写」的「存储桶」,并在设置中开启「静态网站」,获得分配的二级域名「访问链接」。
    在这里插入图片描述
    在这里插入图片描述

  2. 把项目代码推送到「CODING 代码仓库」,在「CODING 持续集成」中创建一个构建计划,选择「构建并上传到腾讯云 COS」模板,填入「腾讯云 COS 访问密钥」等信息,根据自己的代码框架修改编译命令。创建后会自动触发构建,等待构建成功,访问分配的链接即可看到网站。下次推送代码即可自动部署。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  3. 如果你的域名已备案,则可在「腾讯云 对象存储」的设置中绑定「自定义加速域名」,会提示开通「内容分发网络 CDN」,小型网站推荐选择「按使用流量计费」(每月赠送 10GB,一般用不完),将会获得一个 CNAME。
    在这里插入图片描述

  4. 在「DNS 解析」中设置 www 和 根域名,确保两者皆可访问,并且二选一进行跳转避免影响 SEO,推荐 2 种方案:

  • 此域名无邮箱:根域名指向 CDN,www 跳转到根域名,本文采用此方案,把 www.devops.host 跳转到了 devops.host;
  • 此域名有邮箱:www 指向 CDN,根域名跳转到 www;
    在这里插入图片描述
  1. 在「内容分发网络 CDN」——「域名管理」——某个域名——「高级设置」——「HTTPS 配置」中,申请免费的 HTTPS 证书,并开启「HTTPS 回源」、「强制跳转 HTTPS」和「HTTP 2.0」。
    在这里插入图片描述

  2. 开通「腾讯云 云函数 SCF」,按照文档「使用 SCF 自动刷新被 CDN 缓存的 COS 资源」上传代码。
    腾讯云 SCF 自动刷新 CDN COS

提醒

  • 如果网站面向中国境内用户,需要进行域名备案,然后才能绑定到境内的云存储/CDN。本文以腾讯云为例,其他云计算厂商的流程也类似。
  • 如果网站面向中国境外用户,可直接使用境外云存储/CDN 搭建静态网站。

Jenkinsfile

浏览完整代码。

pipeline {agent anystages {stage('检出') {steps {checkout([$class: 'GitSCM',branches: [[name: env.GIT_BUILD_REF]],userRemoteConfigs: [[url: env.GIT_REPO_URL,credentialsId: env.CREDENTIALS_ID]]])}}stage('安装依赖') {steps {sh 'npm i -g lint-md-cli'sh 'pip install mkdocs'}}stage('检查书写规范') {steps {sh 'lint-md docs/'}}stage('编译') {steps {sh 'mkdocs build'}}stage('上传到 COS Bucket') {steps {sh "coscmd config -a ${env.COS_SECRET_ID} -s ${env.COS_SECRET_KEY}" +" -b ${env.COS_BUCKET_NAME} -r ${env.COS_BUCKET_REGION}"sh 'coscmd upload -r ./site/ /'echo "预览 https://${env.COS_BUCKET_NAME}.cos-website.${env.COS_BUCKET_REGION}.myqcloud.com/"}}}
}

持续集成环境变量

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_837700.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CODING 静态网站服务升级,快速、稳定、高拓展!

CODING 静态网站拥有强大的页面托管服务,目前已有数万开发者、设计师、产品经理、团队与企业使用 CODING 静态网站托管了他(她)们的个人网站、博客、企业与产品官网、在线文档等。CODING 静态网站上线运营多年来,由于复杂多变的网…

robots.txt配合google网站管理员工具进行快速删除google收录

新版google工具在【优化】栏目进行删除网址。 google网站管理员工具介绍 google的“网站管理员工具”,是非常强大的,如果你能够熟练的使用它,你的网站将得到不少的提高,这不仅限于google优化哦,还有助于对其它搜索引…

php mysql怎么上传_php网站如何上传数据库

php程序建站最麻烦的就是数据库,因为php必须用独立的数据库,许多新手在建设网站上传数据库经常出错,下面合肥PHP培训小编和大家分享:其实带有数据库的php文件和我们习惯了的html文件的上传是差不多的,就使用dreamwaver…

Github搭建个人网站并上传个人项目

1.Github搭建个人网站参考博客: http://blog.csdn.net/yuexianchang/article/details/53431703 自己的域名:www.lvxingyu.xyz 欢迎访问,不过模板是参考别人的,正在完善,不足之处请多指出,如有侵权&#xf…

设计一个简单的家乡网站

利用HTML和CSS 即可完成简单设计 整体思路:利用网页内链接跳转到不同页面,index.html是主页面,分有几个小部分的页面,可以根据设计者需要安排不同主题的内容,然后实现跳转即可。整体代码用到的都是比较常用的标签例如列…

能爬旅游景点数据的知名网站_某知名网站公布年度数据,十大吸金主播斗鱼独占前四,小团团终成“女幻神”,339斩获一哥...

转眼间斗鱼直播平台又陪伴大家度过了愉快的一年,如今回顾整个2019年,我们收获了很多快乐,与此同时创下无数个记录!比如在知名数据网站“头榜”近日发布的“2019头榜星势力直播风云人物”里,多位斗鱼主播均有所斩获&…

网络请求可以返回数据的网站_互联网大数据在门户网站、网络推广方面的应用...

社会经济的快速发展,人们生活之中沟通交流方式发生了很大的变化,从传统的信封交流到如今的手机交流,互联网的快速发展,给人们提供了一个良好的互动平台,人们可以借助互联网终端设备进行自由的交流、沟通,互…

大型网站架构

从网站架构的性能、可用性、伸缩性、扩展性、安全等指标出发,以思维导图的形式发散网站架构需要的技术和架构,有补充的请留言回复~

网站搭建的基本流程

现今越来越多的企业开始涉足线上经营,因此,企业网站已经成为一个企业的标配,越来越多的企业和个人开始关注网站建设。上篇文章,小编讲了一些建站前的准备,现在我们就来讲讲建站的具体流程。 一、 购买注册域名 域名是…

快速搭建个人博客网站——Hexo

目录 Hexo 安装步骤流程 Hexo主题介绍 我现在使用的主题为Butterfly 博客的编写 GitHub 上传文件到Github 配置静态站点 从csdn迁移博客到hexo Hexo hexo是一款快速、简洁且高效的博客框架,Hexo 使用MarkDown(或其他渲染引擎)解析文…

在gitee码云上搭建一个网站

序 个人用户平时会自己练习一些项目,但是大多数时候这些项目都是在本地查看。如果想让他人能够看到自己制作的网站项目应该怎么办呢? 发布到服务器上 一般来说,域名和服务器都需要钱去购买,比如腾讯云和阿里云服务器&#xff0…

Google网站图标设计师:最著名的“无名艺术家”

Google网站图标设计师黄正穆 2006年莫扎特诞辰250周年纪念 2005年3月30日凡高诞辰纪念 2005年2月9日中国农历鸡年 2002年8月15日韩国解放日 作者:王希怡 他大概算得上是全球最著名的无名艺术家了——虽然他的作品没有在画廊或者博物馆展出,但是却透过互联…

一步一步SharePoint 2007之二十一:解决实现注册用户后,自动具备访问网站的权限的问题(3)——创建用户...

一步一步SharePoint 2007之二十一:解决实现注册用户后,自动具备访问网站的权限的问题(3)——创建用户摘要本篇文章将记录如何解决实现注册用户后,自动具备访问网站的权限的第三部分。前面各项准备工作都做完了,现在我们就来进行解…

《搜索引擎优化 SEO 知识完全手册》完整版1

本书适合作为 SEO 的入门及提高的普及型阅读材料。个人感觉和其他的没什么分别应该是我没有领悟到吧《搜索引擎优化知识完全手册》前言 搜索引擎营销(SEM:Search Engine Marketing)在网络营销中的举足轻重的作用,决定了搜索引擎优…

ASP.NET网站开发架构设计要求

网站文件名: 1、 网站文件名以标准英文单词描述业务内容。如果1个英文单词无法描述,可以增加2个或者3个,但尽量为完全单词,例如article.aspx/ articleView.aspx / articleList.aspx 等。 2、 文件名尽量不用数字描述。 3、 文件名…

如何给网站瘦身?图文并茂的前端性能优化指南

提高网站的速度对网站的成功有巨大的影响,因为网站的加载速度直接影响到用户体验和搜索引擎排名。Browser Diet 是一个非常好的指南,列出了前端性能优化的各种技巧和工具。 您可能感兴趣的相关文章2012年最佳 Web 前端开发工具和框架史上最全的浏览器 CS…

Android利用Jsoup解析html 开发网站客户端小记。

这些天业余时间比较多,闲来无事,想起了以前看过开发任意网站客户端的一篇文章,就是利用jsoup解析网站网页,通过标签获取想要的内容。好了废话不多说,用到的工具为 jsoup-1.7.2.jar包,具体jsoup的相关文档&a…

网站架构瓶颈解决方案(发展历程)

本篇文章参考《大型网站技术架构》,夹杂了一些个人理解,本人渣渣,如有不合理或不全面之处,还请各位指出,不胜感激。 首先,个人认为,网站的架构发展还是根据自家的瓶颈来改进演变,并…

python、C++、机器学习、深度学习-------资源、代码练习的常用网站大全

一、13万第三方库的下载查询网站:pypi 网站:https://pypi.org/ 二、UCI页面(在windows操作系统上,可以下载的第三方库(编译后的版本)) 网站:https://www.lfd.uci.edu/~gohlke/pytho…

将w3cplus网站中的文章页面提取并导出为pdf文档

最近在看一些关于CSS3方面的知识,主要是平时看到网页中有很多用CSS3实现的很炫的效果,所以就打算系统的学习一下。在网上找到很多的文章,但都没有一个好的整理性,比较凌乱。昨天看到w3cplus网站中关于CSS3的一些文章,觉…