专栏首页ZYJ的技术专栏基于腾讯云的个人网站架构
原创

基于腾讯云的个人网站架构

本文介绍如何基于腾讯云的各种云产品优雅地搭建个人网站,涉及的云产品有云服务器SSL企业邮箱对象存储CDN云函数API网关云监控等。

概述

如今云服务提供商们提供了大量涵盖计算、网络、存储等方面的云服务,其中一些云产品功能强大,如果能善加利用可以大幅降低开发和运维的成本。下面以基于腾讯云搭建的个人网站为例,对网站整体的架构进行介绍。

网站目前的主要功能是个人博客,后续可以扩展如个人网盘等其他应用。当前架构图如下:

博客架构图

一、基础设施

1.云服务器CVM

云服务器使用的是CVM,1核2G,下行带宽1Mbps,这个配置用来搭建起步阶段的个人博客是完全够用了,购买学生机或者在活动时购买价格也比较便宜。

有了服务器资源就可以开始博客搭建,我选的博客系统是极简主义的Typecho,安装过程可以参考这篇博文,主要是在服务器上安装nginx、mysql、php以及typecho的源码。

2.域名

注册 - 备案 - 解析

服务器创建后同时会分配一个公网ip,但是为了便于分享和传播,建议进行域名注册。注册后需要进行备案,现在的备案流程也已经简化为在小程序上操作,省去了原有的幕布拍照环节,前后大概1-2周时间就可以完成备案。之后在控制台进行域名解析,即绑定域名和服务器ip,注意对带或不带www前缀的域名都要进行解析,完成解析后就可以在浏览器通过域名来访问网页了。

主域名的确定

为了便于SEO,建议根据个人喜好确定一个主域名,因为搜索引擎对于带www和不带www前缀的地址是当成两个网站分开计算权重的。国内网站一般带www,而国外网站(如github、stackoverflow、leetcode)等是不带www的。我这里是选择不带www的地址(zhayujie.com),并在nginx中配置对带www的访问301重定向到不带www上,以集中权重。

企业邮箱

拥有域名后,还可以注册以自己域名为后缀的企业邮箱,基础版免费使用且账号数量无上限,再也不用担心邮箱号不够用了(如微信公众平台注册),邮箱格式类似于 zyj@zhayujie.com

3.全站HTTPS

为了网站安全以及利于SEO,建议支持https协议访问网站。可以申请免费的SSL证书,将证书和私钥放置到服务器,并在nginx中开启并配置SSL。同样为了避免分散权重,可以把http访问的请求301重定向到https上。以我的网站为例,带不带www以及是否使用https都会统一访问https://zhayujie.com/

二、基于COS和CDN的图床

1.对象存储COS

由于服务器下行带宽有限,如果图片存储于我们自己的服务器,出现并发访问时可能导致带宽超限,访问速度下降。所以可以把图片存储到 COS(Cloud Object Storage)中,搭建自己的图床,这样当博客同步到其他博客平台时,也便于对图片资源进行统一管理。

COS的使用比较简单,类似于网盘,在存储桶中可以建立树状目录结构,每个存储桶(bucket)会分配一个公网域名,其下的文件通过https://{bucket}/{dir}/{filename}的形式进行访问。但在博客中直接使用该链接是不妥的,因为一旦我们迁移到其他云服务商或者切换其他的存储方式了,原有的链接就失效了,一一修改成本太高。好在cos支持配置自定义域名,可以通过类似http://{domain}/{dir}/{filename}的地址进行访问。

2.内容分发网络CDN

COS的自定义源站域名不支持https访问,为了不影响我们的全站https,并且同时提升访问速度和减少流量成本,可以引入CDN服务,开启自定义CDN加速域名,具体步骤见文档

可以选取一个子域名作为cdn自定义域名,添加CNAME解析,这样通过自定义域名会首先访问cdn的边缘服务器,如果未命中则回源到cos。例如上面的图片我配置的地址是https://blog.cos.zhayujie.com/web/blog-cloud-arch.jpg

三、基于Serverless的消息服务

1.云函数SCF

在博客开发过程中会遇到一些发送消息的功能,比如读者回复文章时给笔者发送通知,笔者回复评论时给读者发送通知,博文发布时给订阅的读者发送通知等等。这种消息通知的功能是很适合单独拆分出来形成一个消息服务的,如果写在博客源码中则复用性差(网站下其他应用要发送消息时需要重写),而单独部署服务又会增加运维的成本(如果服务挂掉怎么办),这时候可以考虑serverless(无服务器)的架构,仅将我们的核心代码片段托管给云服务商。

腾讯云提供了云函数SCF(Serverless Cloud Function),是一种FaaS技术。对于消息通知这种异步、无状态的功能,很适合使用云函数编写,比如接收到请求后像指定接收人发送一封邮件。

2.API网关

云函数的触发方式有多种,最常用的有定时任务和API网关。由于消息通知是通过事件触发而不是定时触发,所以选择API网关,创建了触发器后便可从公网直接访问该函数,与Nginx反向代理的作用类似。

API网关的域名是随机生成的,不利于对未来变化的扩展,故同样绑定自定义域名,使用https://{domain}/{function}形式的地址触发函数。例如我的邮件发送函数地址配置为https://apigw.zhayujie.com/commentNotice,在业务代码中只需向该地址发送POST请求即可触发邮件投递。

四、监控、快照和统计

1.监控告警

服务器的监控和告警同样很重要,有助于我们及时发现并排查问题。监控部分一般直接在控制台的 云服务器 - 实例 - 监控 中进行查看,有对不同时间周期和时间粒度下的CPU、内存、带宽、磁盘等的详细数据。

告警部分则在云监控中配置,可以配置多种报警策略如对cpu、内存、带宽等指标超出阈值后进行告警,以及一些机器故障事件(如ping不可达、机器重启等)。对COS的报警同样可以在此配置。告警渠道可以是微信、邮件和短信。

2.快照

为了防止服务器硬盘中的数据遭到攻击或被误删,可以在 云服务器 - 快照 控制台中设置进行快照备份,并且支持定期快照策略,设置每隔一段时间自动创建新的快照。

3.访问统计

对网站的访问情况进行统计分析有利于我们优化网站内容和体验。对于访问数据统计使用的是百度统计,使用埋点方式接入,可以查看每一个访客的地域,来源,搜索词,转化等信息,统计访问量趋势。

对于搜索引擎工具使用的是百度站长工具,用于提交页面收录,查看索引量、抓取频次等数据。

总结

以上就是一个功能齐全的个人博客的搭建过程,大致计算一下成本,云服务器活动期购买一百一年,域名一般几十块一个,而COS、CDN、SCF等产品都有大量的免费额度,且在建站初期流量费用同样是微乎其微,所以总体算下来成本是极低的。个人开发者可以把个人网站当做一个产品来做,思考如何利用好公有云的各种云产品资源来提升用户体验,提高开发效率,降低运维成本。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一文弄懂七种排序算法

    本文介绍了七种经典排序算法,包括冒泡排序,选择排序,插入排序,希尔排序,归并排序,快速排序以及堆排序,并且讨论了各种算法的进一步改进,在文章最后还对所有算法的时...

    zhayujie
  • Typecho搭建博客

    首先需要一个服务器以及与之绑定的域名,服务器中还需下载配置php,mysql,nginx/apache,这里我选择使用lnmp来一键安装。

    zhayujie
  • Fabric进阶(三)—— 使用SDK动态增加组织

    在fabric网络运行过程中动态追加新的组织是相当复杂的,网上的资料也十分匮乏,大多是基于first-network这样的简单示例,而且是使用启动cli容器的方...

    zhayujie
  • 【腾讯云的1001种玩法】一个小白的自学建站史(菜鸟建站入门)

    接触内网的尝试可能有点特别,我刚开始接触与网站相关是在一个关于DVWA这个漏洞系统的搭建上。那时破晓团队的创始人之一K0r4dji到我们学校来有一个讲座

    王启航
  • .com域名和.cn域名的介绍

      .com域名,国际最广泛流行的通用域名格式。国际化公司都会注册。 .com域名;当然也可以选择.net/.org以.com为结尾的国际域名。 例如表示工商企...

    躲在树上的域小名
  • 蜀九香官网恐遭冒充 不注重保护域名

    “九儿家大业大,居然连官网都有人冒充了好气好气好气...蜀九香官方网站域名为www .shujiuxiang.com哦!!!”

    躲在树上的域小名
  • 腾讯云服务器远程登陆

    https://cloud.tencent.com/act/cps/redirect?redirect=1014&cps_key=926cbf665559b54...

    用户5908769
  • 网站被墙了应该怎么解决

     遇到网站被墙,最好立刻解决问题,因为其影响可能会波及更大范围。例如,最初可能仅仅是网站域名被墙,但是域名一直解析到某个IP的话,最终会导致整个IP被墙。而且,...

    用户5856527
  • 实时音视频小程序如果需要上线或者部署正式环境怎么办?

    hhualiu
  • 谁动了我的域名

    昨天小编邀请了我们负责域名解析的好伙伴---廖伟健为我们分享了域名相关的内容,惊闻昨晚两家知名企业域名解析突发故障,今天我们再次请到廖伟健给我们分析一下! 一...

    鹅厂网事

扫码关注云+社区

领取腾讯云代金券