从注册 Azure B1s 到部署 Halo 教程
编辑Step 1. 注册 Azure 学生账号(AZ100)
以下两种注册 Azure 学生账号的方式可以任选其一:
注册 Github 学生包,并连接 Azure 账号到 Github 获取学生权益(学生包内还有其他丰富的权益值得体验)
直接通过教育邮箱注册认证 Azure 账号,速度可能更快一些
Tips:
Github 的认证材料可以提交学信网的学籍认证截图,而学信网的学籍认证界面是可以直接使用 Chrome 自带的网页翻译工具翻译成英文的(这样就不用购买学信网的付费翻译服务了)。但是,翻译成英文之后可能会出现排版错乱问题,或者是出现部分翻译错误。可以使用 这个小工具 修改页面内容,删去多余的导致排版错误的内容,或者修改部分内容
更多 Github 认证过程中的注意事项,我在申请过程中也失败了几次,主要都是 Github 的个人信息没有完善好。名字建议使用英文全拼,头像建议使用和学生身份证明上相同的头像,待申请成功后再修改回来
Step 2. 创建 B1s 虚拟机
天真地以为申请通过了 Azure 账号就万事无忧了?Absolutely not!由于 Azure 对免费资源的限制,在创建虚拟机资源时还需要注意以下几点:
大小这里只能选择 B1s 这个选项,其他的选项都不是免费的。
如果不确定创建哪个地区的实例,可以使用这个工具:Azure 在线 Ping 测速工具。一般新加坡和香港的延迟低一些,香港路由可能会绕新加坡(当然如果套 Cloudflare 就一视同仁了)。
磁盘设置中,需将 OS 磁盘大小改为“重设大小为 64 GB(P6)”(如果此处没有 64 GB 的选项,说明所选系统镜像可能不支持修改磁盘大小,需要创建虚拟机后,关闭虚拟机,然后再调整磁盘大小)。
由于机器配置较低,所以在选择系统镜像时, Linux 镜像建议选择带有
Minimal
标签的,Windows 镜像建议选择带有smalldisk
标签的(否则无法选择 64 GB 硬盘)。IP 地址需要选择动态 IP,静态 IP 是收费的。在“网络”一栏中新建公共 IP 地址可以选择动态 IP。
“监视”一栏中关闭“启用诊断”,防止额外扣费。
创建成功后即可使用 SSH 工具登录虚拟机。
使用免费资源之外的项目会造成扣费,可在 https://www.microsoftazuresponsorships.com/Usage 中查看扣费项目,扣费会优先从 100 USD 赠金中扣除
由于 B1s 实例的内存实在太小(说是 1GB 实际上可用只有 900M,新开机还要被 Linux 内核和 Azure 监控程序占用掉 300M),我推荐你稍微折腾一下,DD 一个纯净系统并且添加 Swap 分区。操作过程详见我的这一篇文章:新开机一台 Linux 服务器之后应该做的 N 件事
Azure 本身的管理面板已经够难用了,给学生的免费配额还有这么多限制,只能说想薅大厂羊毛实属不易。😡
Step 3. 部署 Halo
Halo 支持使用 Docker 部署,所以这一部分还是相对简单的。虽然但是,由于我们使用的是配置稀烂的 B1s,所以比起常规的部署流程可能还稍微麻烦一点。
Halo 官网一共提供了 4 种部署方式,分别为:
创建 Halo + PostgreSQL 的实例
创建 Halo + MySQL 的实例
仅创建 Halo 实例(使用默认的 H2 数据库,不推荐用于生产环境,建议体验和测试的时候使用)
仅创建 Halo 实例(使用已有外部数据库)
经过个人实测,仅部署 Halo 实例大概会占用 500M 左右的内存,此时如果再部署一个数据库实例的话,1GB 内存根本不够用的。
但是!别忘了,Azure 还提供了两台免费的数据库实例(这不比 B1s 有用)。
因此,我们采用第四种方式(仅部署 Halo 实例,使用已有外部数据库)。这里推荐给 Halo 用 PostgreSQL 数据库,MySQL 数据库可以留着自己开发用。创建 Azure 数据库时,数据库实例的地区建议和虚拟机实例一个地区。
部署 Halo 的教程可参考官方教程,这里就不再赘述了。
部署需要安装 Docker,可以使用该一键脚本安装。
部署完之后需要配置反向代理,如果懒得配置反向代理,可以向我一样直接在 docker-compose.yml
文件中将端口号改为 80,然后使用 Cloudflare 给网站加上 SSL 证书。
结语
教程就先写到这里吧,当然本教程并不完善,要折腾的还多着呢(比如说自建图床、优化主题、防止恶意攻击等等)。以后再说吧。
最后的最后不要忘了定期备份!(想象一种极端情况,Halo 实例 OOM 了,此时虚拟机内存爆满连 SSH 都连不上,更别提转移数据了)
- 5
- 1
-
分享