hexo使用github action自动部署至腾讯云开发静态网站托管服务以及github pages

hexo使用github action自动部署至腾讯云开发静态网站托管服务以及github pages,第1张

原文地址: https://blog.kaygb.com/210.html

谈及静态网站的好处,无非是快速轻量,甚至无需购买服务器,使用github pages或者coding等托管即可实现。同时,jsdelivr可对github公开仓库的静态资源进行加速,并且自带全球cdn,快速,并且完全免费。

近期,我的博客网站也迁移到了hexo,并托管在github pages,由于之前申请过腾讯云开发的9.9元静态网站托管服务,本着不用白不用的原则,我把国内的线路以及博客生成的页面都放在了腾讯云开发静态网站托管服务上。

首先在本地安装hexo环境,配置好主题以及自定义的配置,然后将整个hexo目录推送到github私有仓库。私有仓库在接受到push之后,使用github action进行hexo g和hexo deploy,将生成的静态文件推送到另一个以 用户名.github.io 为名称的仓库。

如你所见,我们需要使用两个github仓库来构建我们的个人博客,其中私有仓库(我们可以将名称设置为blog-source)作为博客源文件保存目录,包含所有的hexo配置文件以及我们的主题文件。

这样的好处就是,我们可以完整保留hexo的目录,不用担心文件丢失的问题,还有就是我们可以直接在github网页端直接进行文章的写作,并且支持原生的github markdown格式。

在我们commit之后 github action会自动帮我们构建以及发布,我们只需要安心写作即可。

这一步可以根据hexo官方文档来进行配置。

https://hexo.io/zh-cn/docs/

一个是私有的仓库,用来存放hexo所有的源文件,另一个是公开的以 用户名.github.io 的仓库。

使用ssh-keygen生成一组公私秘钥对

在 Settings ->SSH and GPG keys 添加刚刚生成的公钥,名称随意。

在私有仓库的 Settings ->Secrets 里添加刚刚生成的私钥,名称为 ACTION_DEPLOY_KEY 。

在hexo目录创建 .github 文件夹,并在里面创建 workflows 文件夹,然后在里面新建 blog.yml

贴出我的GitHub action配置文件,后面再进行讲解。

其中,在31至38行内,可以添加自己所使用的hexo插件,如果本地测试的时候使用了此插件,一定要记得将那个插件的npm安装命令写在那里。

云开发Cloudbase提供了可直接使用的action: https://github.com/marketplace/actions/tencent-cloudbase-github-action

在腾讯云开发控制台获取token: https://console.cloud.tencent.com/cam/capi

然后在项目 Setting/ Secrets 里设置 SECRET_ID , SECRET_KEY , ENV_ID 信息

根据文档做出修改然后添加在blog.yml后面

同时,目前我也遇到很多问题,包括到现在为止还无法解决的问题。

一般来说是无法推送 .git 目录的,如果你使用的主题是直接使用git clone下来的,那么一定就会存在 .git 目录,这时我们可以在.gitignore文件内忽略此目录或者直接删除.git文件夹。由于我是直接删掉文件夹,所以另一种方式请大家自行尝试。

其实我最开始是想在公开仓库设置一个github action,在推送到公开仓库之后再由公开仓库的action推送到腾讯云 开发,但是不知道为何hexo deploy的时候无论如何都不会将 .github 文件夹推送上去,即使配置了 skip_render 和 include 也不行,但是我在本地hexo g的时候就可以在public目录生成 .github 文件夹,并且我在网页端公开仓库尝试创建action文件,可以推送成功,但是私有仓库推送之后action文件就会被覆盖,目前暂时无法解决这个问题。

所以只能妥协在同一个仓库进行构建推送,由于处理的文件较多,所以每次的部署都会给我发送一封构建失败的邮件,但它其实是已经部署成功了,我查找了很多的资料,目前暂未解决这个问题,如果您遇到这个问题并且具有解决办法,烦请您告知,非常感谢!

https://juejin.im/post/5da03d5e6fb9a04e046bc3a2

现在许多单位还在用虚拟主机,不仅价格贵,而且由于与别的网站共用一台服务器,所以速度、带宽受到诸多影响,托管服务器能带来很多好处,首先,不受别人影响,网站更加稳定高速;其次,由于获得了服务器的完全控制权,可以运行许多原来不能运行的程序和服务;再次,还大大增强了数据的安全性,想想看,自己的数据总是放在别人电脑里,总觉得不踏实,这下不必担心了。 对于那些打算靠服务器创业掘金的朋友,服务器的利用价值就更大了,可以对外提供诸如、电影下载、网络游戏、网络社区、企业邮局、虚拟主机等多种服务,其中最常见的是虚拟主机,现在虚拟主机虽然遍地皆是,不过空间大一些可运行数据库的高档型虚拟主机价格还是不便宜的,例如一个支持数据库的500M虚拟主机空间,收费多在1000元以上,一台拥有120G硬盘的服务器,理论上可以开200多个这种空间,当然实际是不可能的,就算开只开十分之一,开20个这种空间,那么收费也在2万元,还可以同时开各种低档的空间,现在许多非IT类的企业网站都是静态的产品展示性网站,而且访问量很低,占用系统资源和带宽很少,同时开几百个不是问题,假如每个100M,收费100元,那么又可以收费1万元,这样算下来,就已经收费3万元,减去服务器硬件投入5000元,再减去服务器托管费用5000元/年,一年下来还有2万元毛利润!如果同时托管10台服务器呢?第二年呢,就没有硬件成本了,最多增加一块120G的硬盘,才几百元,算算利润。呵呵,实际上,许多朋友还同时开办许多其他服务,例如企业邮局、电影下载会员收费等等,一台服务器弄好了真是一个聚宝盆啊。 2、托管服务器选择什么类型更好? 很多朋友都知道在机房租个位置不便宜。对于很多个人或者小型公司企业来说,在初期的投资虽然想尽可能省,但是却要学会如何去省,不该省的可别省了。托管主机建议是托管1U的机架式服务器,虽然初期硬件成本高一点,但是长远看还是这样比较合算,因为电信机房的托管费都是按照1U每年多少钱来计算的,假如你的服务器个头太高,无疑就要多付出更多的托管费用,例如,在北京某机房,托管1U服务器4000元/年,托管2U服务器就要6000元/年,由此可见,1U服务器在主机托管领域的应用是很有实际意义的。托管1U服务器与托管其他种类的服务器(例如2U服务器、塔式服务器等)相比,托管费肯定是最便宜的。所以,要去托管,就请先把你塔式服务器里的配件拿出来,装进1U服务器机箱里,这能为您省下一大笔银子,想想,服务器是要托管很多年的啊,得省多少钱啊。

在 Linux 系统中,使用nginx 做动静分离是用来提高性能和网站的可用性

动静分离的原理是将网站的静态内容(例如图像,CSS 文件和 JavaScript 文件)与动态内容(例如由后端 Web 应用程序生成的内容)分开存储和传输。

这样做可以提高网站的整体性能,因为它可以让您的 Web 服务器专注于处理动态内容,而另一台服务器专注于传输静态内容。这有助于减少 Web 服务器的负载,并有助于提高网站的响应速度和可用性。

除此之外,还有别的方案吗?

当然有,除了做动静分离,还有其他一些方法可以提高网站的性能和可用性。例如,可以使用内容分发网络(CDN)来传输静态内容,以减少对 Web 服务器的负载。

您还可以使用缓存来减少对后端数据库的访问,从而提高性能。

此外,您还可以使用服务器集群来扩展您的网站的处理能力,以应对高流量。

总之,要提高网站的性能和可用性,您可以根据您的具体情况来选择适合您的方案。

内容分发网络(CDN)是一种分布式网络,它将网站的内容存储在许多不同的服务器上,并从最近的服务器向用户发送内容。这与传统的网站架构不同,其中所有内容都存储在单个服务器上,并由该服务器直接向用户发送。CDN 可以提高网站的性能和可用性,因为它可以减少对单个服务器的负载,并使内容更快地传递给用户。CDN 通常用于传输静态内容,例如图像,视频和音频文件。

使用 CDN 的方式取决于您的网站架构。如果您的网站使用传统的服务器端技术(例如 PHP 或 ASP.NET),则可以在您的 Web 服务器上安装 CDN 插件。该插件会将您的静态内容存储在 CDN 上,并在向用户发送内容时从 CDN 获取内容。如果您的网站是基于静态网站生成器或静态托管平台构建的,则可以通过将您的内容存储在 CDN 上来启用 CDN。此外,您还可以通过配置您的域名解析记录来将流量路由到 CDN。总之,使用 CDN 的方式因您的网站架构而异,您需要根据您的具体情况来选择适合您的方法。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/340455.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存