各种部署方式
静态博客的部署方式多种多样,免费部署资源非常多。
如果DNS支持多线路,还可以设置多路负载均衡!
注意:这些免费的部署都没法做ICP备案,或者国内CDN套着备案。不过,都免费了,你还要求那么多?
部署方式 | 费用 | 限制 | 难易度 | 多域名 |
---|---|---|---|---|
Github | 0 $ | 100G/M | 简单 | 单域名 |
VPS | 约2~5$/M | 看购买套餐 | 复杂 | 支持 |
Vercel | 0 $ | 100G/M | 简单 | 支持 |
Netlify | 0 $ | 100G/M | 简单 | 支持 |
Cloudflare pages | 0 $ | 无 | 简单 | 支持 |
Gitlab | 0 $ | 无 | 简单 | 支持(?) |
更详细对比
Github可以通过同样代码仓库,多个仓库同时部署,不同仓库设置不同的域名来支持多域名!
Tips:
Github
有每个账户1000个仓库限制,每个仓库大小超过1G,就会被人工审查!所以撸羊毛可以,注意仓库个数和大小限制!
GitHub Pages
速度:尚可,并不很慢,但有时候会抽风。
自定义域名:一个。
限制:
- 单个文件大于50MB将受到警告。
- 单个文件大于100MB无法上传。
- 仓库大小「强烈建议」少于1GB。
- 每小时可构建10次。https://help.github.com/articles/what-is-my-disk-quota/#file-and-repository-size-limitations
- 每月流量100GB 或者 100,000 次请求。
详情可见:https://docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages#guidelines-for-using-github-pages
- 优点:简单方便
- 缺点:国内速度慢,直连CNAME会泄露GitHub用户名,免费版私有仓库无法使用
Netlify
控制台无法访问。
部署方式:GitHub、GitLab、BitBucket仓库自动拉取以及本地CLI直接推送。
速度:较GitHub Pages要快,但是稳定性差上不少,部分时候可能直接出现无法访问。
自定义域名:多个。
限制:
对于每个账户:- 同时只能构建一个站点。
- 每月流量100GB。
- 每月构建时间300分钟。
详情可见:https://www.netlify.com/pricing
- 优点:pr单独部署,速度还可以,有免费的serverless
- 缺点:直连CNAME会泄露分配域名
- 对比Vercel,Netlify在国内的速度确实要比Vercel慢很多,但前者有许多后者没有的服务或插件,比如Algolia、表单等等
Cloudflare Pages
部署方式:GitHub仓库。
速度:与GitHub Pages相似。
自定义域名:最多10个;
限制:
- 每月构可构建500次。
- 每日所有Functions 和 Workers 总计限制 100,000 次请求。
- 文件数量最多2w个。
- 单个文件大小不得超过25MB。
详情可见:https://developers.cloudflare.com/pages/platform/limits
Vercel
部署方式:与Netlify相同,支持GitHub、GitLab、BitBucket仓库自动拉取以及本地CLI直接推送。
速度:在所有方案中最快且最稳定。
自定义域名:多个。
限制:
- 每日可构建100次,但每小时不超过32次。
- 单个Git仓库支持连接3个Vercel项目。
- 每次构建时长最多45min。每月总计不超过100h。
- 每月带宽100G。
详情可见:https://vercel.com/docs/platform/limits
- 优点:pr单独部署,速度快,CNAME无隐私问题,有免费的serverless
- 缺点:嗯,免费的能做到这样还指望啥?
Cloudflare CDN
Cloudflare CDN本身并非博客托管服务,但是可以与上文任意一个服务进行搭配。
使用CF CDN时访问速度大多数时候较快,遇高峰期将减速。总体来说速度不如Vercel。稳定性尚可,但曾出现过无法访问的情况。
最主要的是将获得非常多的扩展功能,如HSTS、访问限制,以及HTTP/3等前沿网络技术。他们对IETF的跟进是很快的。同时还会获得DDoS清洗、网站分析等服务。
注意,套上CF CDN之后,可能访问速度会下降,例如Vercel,CF pages
最佳方法是使用Vercel+CF Partner?不过现在能用的CF Partner几乎没有了
gcore CDN
每月 1000G 免费流量!
免费节点在中国访问速度比 cloudflare 更快
jsDelivr CDN
- 支持 HTTPS,支持 HTTP2,提供 SRI
- 网宿、Fastly、Stackpath、Cloudflare Business Plan
- 非常丰富的国内节点
- 非常丰富的海外节点
- 全球的速度都非常优秀
cdn.jsdelivr.net
,NS1 和 Rage4 主从 DNS- 便捷性:★★★★★
jsDelivr 支持从 NPM、GitHub Tag 和 WordPress SVN 上抓取文件并分发,大大降低了开发者使用的难度——直接发个 Release 就可以用了。jsDelivr 每个月会被调用上百亿次,服务 620+ TB 的流量,意味着如果你不是通过 jsDelivr 加载较为热门的库,那么缓存命中率是不会太理想的。
公用库采用jsDelivr加速,自定义修改的js,css使用自己的部署服务
VPS
一句话,VPS的超能力就是有钱。配置更好的服务器速度更快,对国内外来说,地理位置最理想的是香港VPS。当然,价格也是相当感人!
- 优点:钱越多,速度越快。自定义性最高,想做什么服务都可以
- 缺点:很花钱,网站较大时考虑这个。不够稳定,要稳定性就要多点部署,需要自己维护服务器
RackNerd VPS 推荐
目前个人能找到的最便宜的 VPS 服务商: racknerd VPS
双11,或者6.18 活动价更优惠!几年前买的一个 1核1G 的,一年不到10刀!现在已经绝版了,并且后续每年循环账单续费没有涨价!
如果你发现了更便宜的服务商,务必留言告诉我!
Hexo Docker 本地部署
在最前面的篇章介绍了Hexo Docker 环境的使用方法。具体使用方法见本文系列Hexo Docker 环境篇。
优点:本地使用可定制化成都更高
缺点:必须要有Docker 环境。异地使用麻烦,除非ssh,vpn等远程链接方法。
Hexo Docker VPS 部署
和 Hexo Docker 本地部署基本一样,最后反向代理设置域名。
具体参考 Hexo Docker 环境篇
Hexo IPFS 部署
全面拥抱 web 3.0。静态部署 hexo blog!
本节待完善!
4everland
私有部署 IPFS
hexo 插件 hexo-deployer-ipfs
Docker 配置 IPFS
Docker private-network-ipfs 利用 Docker 搭建 IPFS 私有网络
Win10 配置IPFS
IPFS是点对点协议InterPlanetary File System的简称,它是一个面向全球的、点对点的分布式版本文件系统,试图将所有具有相同文件系统的计算设备连接在一起。
近日,IFPS宣布了一个未来web发展计划,它用基于内容的地址替代基于域名的地址,也就是用户寻找的不是某个地址而是储存在某个地方的内容,不需要验证发送者的身份,而只需要验证内容的哈希,通过这样可以让网页的速度更快、更安全、更健壮、更持久。IPFS表示,IPFS未来将替代HTTP(以及其他的许多东西)。
2.1 安装IPFS
至官网下载对应版本,一路安装即可,win10系统,下载对应zip解压后,将ipfs.exe添加到%PATH%。
测试是否安装成功:ipfs help
出现 USAGE:
ipfs - Global p2p merkle-dag filesystem.
…
即可。
2.2 启动本地IPFS节点
第一步:先初始化IPFS
ipfs init
第二部:打开节点
ipfs daemon
此时,你可以在http://localhost:5001/webui,打开自己的操作台。
2.3 将Hexo博客部署到IPFS节点上
Hexo是一个静态博客生成器,执行hexo generate后,会在博客目录生成/Public目录,该目录即为全部博客内容
执行 ipfs add -r public
得到:added QmXJJm7aydK22eF1BdKVozcXH5Ltm8ZwbFHo3c36hi9qUx public
QmXJJm7aydK22eF1BdKVozcXH5Ltm8ZwbFHo3c36hi9qUx即为博客网站的site_hash,你可以通过任意运行IPFS的节点访问,如:http://localhost:8080/ipfs/$SITE_HASH,也可以通过官方运行的节点访问:http://gateway.ipfs.io/ipfs/$SITE_HASH。
2.4 绑定独立域名
刚才,我们通过ipfs add,将博客发布到了IPFS运行的区块链节点上,但复杂的site_hash并不友好,我们可以使用IPNS技术,通过绑定独立域名来实现与现有的网站访问并无任何不一样的体现。我们假设你已经有一个可以正常使用的域名,如aa.com,没有域名的可以到任意域名服务商初购买。
首先,我们将网站发布
执行 ipfs name publish QmXJJm7aydK22eF1BdKVozcXH5Ltm8ZwbFHo3c36hi9qUx
得到 Published to QmV61ui6H9qX3126yGH846dPkMgSe7SZcDxrVwm2gxTidu: /ipfs/QmXJJm7aydK22eF1BdKVozcXH5Ltm8ZwbFHo3c36hi9qUx
记住QmV61ui6H9qX3126yGH846dPkMgSe7SZcDxrVwm2gxTidu为你的peerid,该hash是保持不变的。
那好,我们现在只需要将aa.com解析到上述地址即可,添加TXT记录为dnslink=/ipns/QmV61ui6H9qX3126yGH846dPkMgSe7SZcDxrVwm2gxTidu,同时将域名A记录指向任意ipfs节点的ip,如gateway.ipfs.io。
现在访问aa.com,你是不是发现已经可以正常访问你刚才生成的博客了。当然,在没有优化之前,访问会很慢,但可以打开。
由于IPNS还不稳定,你可以在http://ipfs.io/ipfs/QmeaNWtacNyWZxEphYCdVmF6bcMg7Bjn6e5sGdK6fr1nMx 查看本页面。
将Hexo部署到VPS实现自动发布
搭建流程
- 服务器环境配置,安装Git、Nginx配置、创建git用户
- 本地hexo初始化
- 使用Git自动部署并发布博客
服务器环境搭建
- 安装Git和NodeJS(Centos环境)
- 创建git账号
- 添加内容
找到
- 添加以下内容
- 保存退出并改回权限
- 设置git账号密码
- 使用
su git
切换到git用户,再执行下列操作:
- 然后可以通过本地Git Bash执行ssh命令测试是否可以免密登录
这样git用户就添加好了。
Tips: 将公钥拷贝到服务器的~/.ssh/authorized_keys文件中方法有如下几种:
- 将公钥通过scp拷贝到服务器上,然后追加到~/.ssh/authorized_keys文件中,这种方式比较麻烦。scp -P 22 ~/.ssh/id_rsa.pub user@host:~/。
- 通过ssh-copy-id程序,就是我演示的方法,ssh-copyid user@host即可
- 可以通过
cat ~/.ssh/id_rsa.pub | ssh username@host "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"
,这个也是比较常用的方法,因为可以更改端口号。
- 安装Nginx
- 准备工作
首先由于nginx的一些模块依赖一些lib库,所以在安装nginx之前,必须先安装这些lib库,这些依赖库主要有g++、gcc、openssl-devel、pcre-devel和zlib-devel 所以执行如下命令安装
Ubuntu系统安装命令如下:
- 安装Nginx
安装之前,最好检查一下是否已经安装有nginx
如果系统已经安装了nginx,那么就先卸载
然后开始安装
首先进入/usr/local
目录
从官网下载最新版的nginx
(注:版本号可更改,去官网查看最新版本号修改即可)
解压nginx压缩包
会产生一个nginx-1.14.2 目录,这时进入nginx-1.14.2 目录
接下来安装,使用–prefix参数指定nginx安装的目录,make、make install安装
(默认安装在/usr/local/nginx,推荐使用默认设置)
如果没有报错,顺利完成后,最好看一下nginx的安装目录
(where和is要连这些,中间没有空格)
- 启动和停止nginx
查询nginx进程:
- 重启 nginx
- 先停止再启动(推荐):
对 nginx 进行重启相当于先停止再启动,即先执行停止命令再执行启动命令。如下:
- 重新加载配置文件:
当 nginx 的配置文件 nginx.conf 修改后,要想让配置生效需要重启 nginx,使用 -s reload 不用先停止 nginx 再启动 nginx 即可将配置信息在 nginx 中生效,如下:
启动成功后,在浏览器可以看到如下页面:
- 开机自启动
即在rc.local增加启动代码就可以了。
增加一行
到这里,nginx安装完毕,启动、停止、重启操作也都完成。
建立git裸库
检查用户组权限
我们的git裸仓库已经建立好了,离成功又近了一步。为了以防万一,我们要检查一下之前的blog.git、.ssh、blog目录的用户组权限是否都为git:git
如果有哪个不是,执行下面相应的命令后再查看
使用git-hooks同步网站根目录
简单来说,我们使用一个钩子文件:post-receive,每当git仓库接收到内容的时候,就会自动调用这个钩子,把内容同步到网站根目录。
在git用户下执行:
在里面输入以下内容,注意修改为自己的设置:
保存退出后,执行以下赋予这个文件可执行权限。
好了,以上就是服务器端需要配置的内容。我们还差最后一步就可以完成整个部署了!
修改配置文件nginx.conf
修改上面的配置文件:
然后修改其中两个部分,如下所示:
然后重启nginx
,方法见nginx安装
部分。
配置本地Hexo的_config.yml
非常简单,只需要找到本地Hexo博客的站点配置文件_config.yml
,找到以下内容并修改:
保存后,剩下的就是Hexo的日常操作了,这里就不赘述了,写完文章后,在你的本地博客根目录执行以下命令:
就可以实现线上博客的自动更新了!一切搞定!
webhook部署
上面这个仓库支持在你的VPS 快速建立一个webhook 接口。然后利用 github webhook 通知你的 VPS 来拉取最新的代码部署
对于 webhook 来说,可以自己写一个脚本来接受信息,思路很简单,运行一个 HTTP Server
,监听服务器的某个端口,如果有消息传递过来,那么就运行事先写好的脚本,来完成 webhook 的功能即可。
安装 webhook
这里推荐三种安装方法,使用其中一种方法即可,github 下载速度可能很慢,推荐使用系统源安装的方式
法一:使用系统源的安装方式
如果是 Ubuntu 系统,可以直接使用下面的命令进行安装:
法二:使用 github 下载
webhook 的 release 链接,找到对应的选项 webhook-linux-amd64.tar.gz
右键复制链接 ,当前最新版本链接为
法三:Golang 环境下安装
首先安装 Golang 环境(这里略过),然后安装 webhook,这里注意需要已经设置了 GOPATH
配置 webhook
我们的 hooks.json 文件现在看起来是这样的:
注意:如果您更喜欢 YAML 格式,等价的 hooks.yaml 文件如下:
您现在可以使用以下命令运行 webhook:
它将在默认端口 9000 上启动,并为您提供一个 HTTP 终端:
更多配置参数
webhook/docs/Webhook-Parameters.md at master · adnanh/webhook (github.com)
实战
利用 uuidgen 生成随机 ID
hooks.yaml
depHblog.sh
后台运行
反向代理
宝塔面板 go 项目
调用
上面命令测试成功之后就可以正式和 github 仓库关联起来了
Rsync同步部署静态文件方法
使用rsync同步
本地生成静态文件后rsync同步到vps网页目录,lnap使用宝塔配置,这里只需要一个nginx。
Hexo Github Action 自动部署
准备
Hexo
博客源码的仓库,在GitHub
上。ssh
密钥,参考文章:Windows 下利用 Git 生成 SSH KEY 并配置到 GitHub
步骤
- 为需要部署的平台添加密钥
- 修改
_config.yml
中的deploy
配置 - 在 GitHub 上设置
Secrets
- 创建 GitHub Action
为需要部署的平台添加密钥
按照之前的教程,只要你之前成功将 Hexo 的博客部署到 GitHub 上,那你电脑在 ~/.ssh
目录下一定有以下三个文件:
id_rsa
:私钥id_rsa.pub
:公钥known_hosts
:记录对所有用户都可信赖的远程主机的公钥
将 id_rsa.pub
(公钥)添加到不同平台中即可,参考文章:Windows 下利用 Git 生成 SSH KEY 并配置到 GitHub
下面是不同平台添加的地址:
修改 _config.yml
中的 deploy
配置
请使用 ssh
(即以 git@
开头的 clone
链接) 的连接方式,根据直接的实际地址填写。
在 GitHub 上设置 Secrets
进入到你在
GitHub
上面的源码仓库点击右上角的
Settings
Settings
点击左侧的
Secrets
点击右上角的
New secret
New secret
- 在
Name
中输入HEXO_DEPLOY_PRI
,在Value
中填入id_rsa
(私钥)的全部内容
Add secret
创建 GitHub Action
- 点击项目上方的
Action
按钮
Action
- 点击
set up a workflow yourself
创建Workflow
Workflow
- 修改
main.yaml
的内容
Create Workflow
根据实际情况修改成你自己的内容
- Git 推送使用的用户名:git config –global user.name ‘your name’:
- Git 推送使用的邮箱:git config –global user.email name@email.com
- Hexo 的版本:npm i hexo@4.1.1 -g
下面这个部署脚本功能更加完善,解决了文章更新时间问题
.github/workflows/deploy.yml
- 将你的源码推送到
GitHub
上,你的博客一会就会自动更新了。
Hexo Gitlab CI/CD自动部署
啥都不说,直接上代码,请参考 Gitlab 官方项目 Gitlab hexo
更多关于 Gitlab CICD 介绍,请看下面文章
vercel 部署
jsdelivr被封了,怎么办?vercel 部署可以加速访问
为什么使用 vercel
- 国内
Github Pages
速度较慢。 vercel
速度快且能够自定义域名,能实现和Github Pages
一样的效果
vercel 官方地址:vercel.com/
如何部署
- 首先注册一个账号
- 注册成功后进入页面,点击
News Project
- 然后通过绑定的
github
或者gitlab
导入需要部署的项目
- 如果导入的项目是打包好的静态页,在
Build and Output Settings
的override
都勾上,表示不执行它的默认命令。
- 点击
deployed
进行部署,如果部署失败可以查看报错信息是不是上一步的某些选项没有覆盖。部署成功后会进入如图所示的界面
如何自定义域名
- 腾讯云域名地址:console.cloud.tencent.com/domain
vercel
静态页挂载地址:- 进入到 setting 中可对项目进行一些设置,如项目名称
- 下面演示如何自定义域名,默认情况下部署成功后
vercel
会给你生成一个默认的域名,如果想要修改成自己的域名可将域名名称修改成自己的。 - 当选择修改成自己的域名名称后,
vercel
会检查域名指向的DNS
对不对,如果不对的话会提示你域名的 DNS 应该如何配置,按照vercel
提示的DNS
信息
在自己的域名的 DNS
配置中进行配置,如图
配置多个域名
对其他新增的域名选择重定向到自己的主域名即可
自定义Header缓存时间
使用Vercel必备配置,本地缓存加速访问!
vercel.json
Vercel自定义404
cloudflare Pages 部署
jsdelivr被封了,怎么办?cloudflare Pages 部署可以加速访问
强烈推荐!
全球CDN,静态加速,可以说是最佳部署方案!就是有每日100000次请求限制!可以使用dnspod多线路负载均衡来帮助分流。
官网 cloudflare 首先注册一个账号
错过了CloudFlare Partner的时代,官方的CloudFlare for SaaS也提供了一种更灵活的CNAME接入方式
Cloudflare访问速率限制
我们一直不怕网站内容被爬走,但怕服务器被疯狂的爬虫爬垮,所以希望能限制恶意爬虫速度,而又不影响用户访问和搜索引擎爬虫抓取,这是个两难的事情。不过 Cloudflare 提供了 DNS 级别控制的速率限制!
计划 | 规则数 | 操作 | 操作持续时间 | 请求期间 |
---|---|---|---|---|
免费 | 1 | 阻止 | 1 分钟或 1 小时 | 10 秒钟或 1 分钟 |
Pro | 10 | 阻止、旧版 CAPTCHA、JS 质询、托管质询或记录 | 1 分钟或 1 小时 | 10 秒钟或 1 分钟 |
Business | 15 | 阻止、旧版 CAPTCHA、JS 质询、托管质询或记录 | 1 分钟、1 小时或 24 小时 | 10 秒钟、1 分钟或 10 分钟 |
企业 | 100 | 阻止、旧版 CAPTCHA、JS 质询、托管质询或记录 | 可以输入 10 秒到 86400 秒(24 小时)范围内的任何时间长度 | 可以输入 10 秒到 3600 秒(1 小时)范围内的任何值。 |
设置方法
该功能是防御 CC 强有效的功能,可以从【安全性】-【WAF-】【速率限制规则】进入配置页面。
针对免费用户来说可以配置的参数比较少,主要实现的是同个 IP(10 秒内请求数>n)时对其返回 429 阻止访问。如图填写 /
可对 zone 下所有域名进行保护,正常情况下 n 建议设置为 50-100,资源更多的站点可以考虑适当放大(以不影响正常访问为准)。
- 在“安全性” - “WAF” - “防火墙规则”中添加排除跳过速率限制只能老版本的速率限制有效,但新版本的速率限制无效,可以采取在“安全性” - “WAF” - “工具”中添加IP 访问规则,将常见的AS15169(Google)、AS8075(Microsoft)等IP段设置为“允许”,这些IP就不会受到速率限制的影响;
- 所有版本都在过滤条件中增加了Verified Bot,可以让通过验证的好爬虫跳过速率限制,设置截图如下:
CORS跨域问题
CloudFlare 解决 CORS 跨域问题
nginx 解决 CORS
nginx配置文件中添加:
以 token 方式部署到 Github
travis 自动部署配置
travis是第三方CICD服务,比action更加强大,下面只是参考,请查阅travis 文档,并结合自己的环境修改!
利用 GitLab 实现 Hexo 博客的 CI/CD
Portainer 提供了对服务在线更新的 WebHook,所以基于 GitLab 自带的 CI/CD 功能实现 Hexo 博客的持续部署,就非常轻松了。
CI/CD 其实本质上是一套流程,流程规则可以自行定义。在本文研究的主题下,流程分为三步:第一步是编译 Hexo 博客并生成静态文件;第二步是将静态文件打包成可提供 Web 服务的镜像;第三步则是通过 Portainer 的钩子触发服务更新。
.gitlab-ci.yml
为了保证服务更新的成功率,可以在 deploy
环节加个错误判断和重试次数,具体的看 GitLab 官方文档即可。
下面给出我的 Dockerfile 文件,供参考。
部署图床
有很多上传图片的方法,如果使用第三方服务,不知道什么时候就跑路了。所以还是自己部署图床比较稳妥
github pages
使用git 管理图片仓库。picgo + github 上传,保存图片,github pages 或者 vercel,netlify,cloudflare pages来作为网络访问。
vercel 托管github上面的图片仓库。 每月免费100G流量。 还有netlify托管,github托管,都有每月免费100G流量使用dns分流,采用DNS 权重自动分流每月就有300G免费流量了。
300G流量,足够每天几千PV访问量了
npm托管
还有一个完全不要钱的方案。图片使用npm包管理,上传到npm仓库,各个npm镜像仓库就都是你的图床了。没有流量限制,就怕什么时候npm封闭你的账号 O(∩_∩)O哈哈~
本文假设您已有 NPM 账号、GitHub 账号。
下面是一个使用GithubAction和NPM搭建自动转换webp图床的完整教程
准备工作
新建仓库
新建一个 GitHub 仓库,公开或是私人都可以,此处不再赘述。
在 Git 仓库中新建 rawimg/.gitkeep
与 webpimg/.gitkeep
两个文件。
获取令牌
登录 https://npmjs.com ,点击右上角的头像,进入 Access Token
。
点击页面中的 Generate New Token
获取新的令牌。
选择 Automation
,点击 Generate Token
生成令牌。
将生成的令牌复制下来。
进入 GitHub 仓库,点击 Settings
。
点击菜单栏中的 Secrets
。
点击 New repository secret
新建一个 Secret。
Secret Name 为 NPM_TOKEN
,Value 是你的 NPM 令牌,点击 Add secret
添加。
在仓库中新建 package.json
文件,参考如下:
图片转换与发布
为了方便多端写作,我使用 GitHub 临时存储所需的图片,GitHub Action 发布 NPM 包。
WebP 可以大大缩减图片的尺寸,我们还可以借助 GitHub Action 在发布前自动转换。
使用
上传
将图片文件上传至仓库的 rawimg/
文件夹下即可。
当然也可以使用 PicGo / UPic / HexoPlusPlus 等工具上传。
发布
在 GitHub 中新建 Release,将自动修改版本号并发布 NPM 包,无需手动修改 package.json
。
访问
推荐的镜像
镜像推荐选择访问速度快的,比较稳定的,拉取速度快的。
我选择的是 jsDelivr,国内外速度都很优秀。
链接
以 jsDelivr 为例,原图链接为:
WebP 图片链接为:
[值] | 说明 |
---|---|
package-name | NPM 包的名称 (package.json 文件中 name 的值) |
version | 当前版本 (package.json 文件中 version 的值,通常需要在发布 Release 1 分钟后更新) |
filename | 文件名 |
suffix | 文件后缀名 |
vps自建图床
lychee , chevereto 等免费图床工具有很多。就是需要自己配置vps
下面是一个 docker compose 创建Lychee图床的示例
DNSPOD 多线路负载均衡
DNSPOD官网 console.dnspod.cn
dnspod对cname数目有限制。
这里使用权重来分配各条线路访问比例!
乒乓部署
也可以叫旋转门部署。
解决调试博客插件,修改半成品文章时部署到云端会影响正在查阅博客的用户的问题!
使用Docker版本本地预览是很不错,但是 jsdelivr 版本发布需要在 Github 生成新 release 这时本地就不行了。乒乓部署可以解决这个问题!
具体方法就是同时部署到两个地方A和B,博客域名在两个服务器之间切换。这里以 Vercel 为例
准备工作:
- 创建2个Github仓库,对应服务器A和B的部署
- 建立两个服务器A和B,分别关联两个 Github 仓库
- 把调试完毕的代码上传到两个仓库
- 这时通过服务器A和B都是可以正常浏览的
要调试的时候:
- 发布到A之前,把博客域名转移到服务器B
- 在服务A做一些调试,在线 debug 工作
- 特别是在线 pageseed 测试调优,这种事必备方法。简单不需要新的 jsdelivr 版本调试本地 docker-hexo 调试即可!
调试完毕后:
- 把域名切换到服务器A
- 同时部署到服务器B,服务器B同步A的部署内容,以便下次备用
总结就是服务器A现行,服务器B做后备,调试发布使用A,调试A的时候B就顶上前台!
这样,调试和正常部署网络服务两不误。是不是感觉自己是个大聪明!
本教程还有其它五大部分,更多内容请见Hexo系列教程
系列教程
Hexo系列
[三万字教程]基于Hexo的matery主题搭建博客并深度优化完全一站式教程
- Hexo Docker环境与Hexo基础配置篇
- hexo博客自定义修改篇
- hexo博客网络优化篇
- hexo博客增强部署篇
- hexo博客个性定制篇
- hexo博客常见问题篇
- hexo博客博文撰写篇之完美笔记大攻略终极完全版
- Hexo Markdown以及各种插件功能测试
- markdown 各种其它语法插件,latex公式支持,mermaid图表,plant uml图表,URL卡片,bilibili卡片,github卡片,豆瓣卡片,插入音乐和视频,插入脑图,插入PDF,嵌入iframe
- 在 Hexo 博客中插入 ECharts 动态图表
- 使用nodeppt给hexo博客嵌入PPT演示
- GithubProfile美化与自动获取RSS文章教程
- Vercel部署高级用法教程
- webhook部署Hexo静态博客指南
- 在宝塔VPS上面采用docker部署waline全流程图解教程
笔记系列
- 完美笔记进化论
- hexo博客博文撰写篇之完美笔记大攻略终极完全版
- Joplin入门指南&实践方案
- 替代Evernote免费开源笔记Joplin-网盘同步笔记历史版本Markdown可视化
- Joplin 插件以及其Markdown语法。All in One!
- Joplin 插件使用推荐
- 为知笔记私有化Docker部署
Gitbook使用系列
- GitBook+GitLab撰写发布技术文档-Part1:GitBook篇
- GitBook+GitLab撰写发布技术文档-Part2:GitLab篇
- 自己动手制作电子书的最佳方式(支持PDF、ePub、mobi等格式)