一、缘起
本人目前就读博士一年级,人工智能专业,偶然在VPS交流群中得知了阿里云的“飞天加速计划·高校学生在家实践”活动,考虑到后续学习知识和部署相关网络应用的需要,本次活动可以说是非常好的机会,首次通过学生认证可以领用两周的体验时间,后续通过考核,可以续费试用。自己打算通过申请阿里云ECS,搭建halo博客练手。
二、初识阿里云ECS
通过阿里云新手训练营可以很容易上手ECS,完成实例创建及一些基本操作,包括重置密码,远程登录ECS,以及查看ECS详情信息,云盘状态等等。这里,不再赘述。
创建实例的过程中可以根据个人状态选择ECS的操作系统,本人了搭建博客需要,还有就是考虑到个人应用习惯,选择了Ubuntu 20.04系统,创建完成后,通过实例详情也没的重置实例密码来重置ECS的密码,重启后生效。
MobaXterm远程连接ECS
重启完成后,本人选择了使用MobaXterm软件来远程登录ECS控制台,这里可以根据个人习惯选择,比如常用的远程ssh登录软件有:SecurityCRT、putty、Finalshell等等。
更新软件包
登录成功后,首选运行以下命令更新软件包:
apt update
apt upgrade
安装宝塔面板
在宝塔官网使用命令行安装宝塔面板,可以根据自己的系统来选择相应的命令,等待安装完成:
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
接下来通过安装成功后提示的外网地址链接和用户名、密码在浏览器中访问宝塔面板,如果显示无法访问,则需要首先在实例详情页面的安全组中,选择配置规则,添加入方向规则,放行8888端口,如图所示。
安装LNMP
在浏览器输入宝塔面板链接,并输入生成的面板用户名和密码,登录成功后安装LNMP,这里选择极速安装方式,该部分安装时间可能需要等待一段时间,等待其安装完成。
在宝塔面板的消息盒子中可以查看安装进度:
安装docker
通过在终端中依次输入以下命令安装docker.
Set up the repository
apt-get update apt-get install ca-certificates curl gnupg lsb-release curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-y=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Install Docker Engine
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io
docker run hello-world
出现以下信息表示,docker安装成功:
安装halo博客
Halo [ˈheɪloʊ],一款现代化的开源博客/CMS系统,安装配置简单,可以使用命令行或者docker安装,本文选择使用docker安装方式。
- 创建 工作目录
mkdir ~/.halo && cd ~/.halo
- 下载示例配置文件到 工作目录
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
- 编辑配置文件,配置数据库或者端口等,如需配置请参考 配置参考
vim application.yaml
- 拉取最新的 Halo 镜像
docker pull halohub/halo:1.5.0
- 创建容器
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo -
-restart=unless-stopped halohub/halo:1.5.0
- -it: 开启输入功能并连接伪终端
- -d: 后台运行容器
- --name: 为容器指定一个名称
- -p: 端口映射,格式为
主机(宿主)端口:容器端口
,可在application.yaml
配置。 - -v: 工作目录映射。形式为:-v 宿主机路径:/root/.halo,后者不能修改。
- --restart: 建议设置为
unless-stopped
,在 Docker 启动的时候自动启动 Halo 容器。
- 打开
http://ip:端口号
即可看到安装引导界面。同样,在访问页面之前,需要将halo使用的端口(默认为8090)在访问规则中放行。
访问成功后的界面,输入管理员信息和网站信息,然后就可以访问halo博客的管理界面了。
halo博客支持多种主题界面,可以通过管理界面中的外观->主题,选择安装自己喜欢的主题样式,支持本地安装和在线安装,非常方便。我这里使用Joe2.0主题,
设置反向代理
到这里其实博客已经搭建完成,但是访问的时候用的还是IP地址:端口形式访问,这样既不安全也不容易记忆,因此,需要设置反向代理,在设置之前需要购买一个域名,并解析到现有的阿里云ECS主机,域名购买的步骤在这就不详细介绍了,下面只介绍如果在宝塔面板进行网站部署和进行反向代理设置。
在宝塔面板网站选项中,选择添加站点,输入解析好的域名,点击保存;
部署SSL证书,并强制HTTPS;
更改nigix服务配置:
并添加以下代码:
location / { proxy_pass http://127.0.0.1:8090/; rewrite ^/(.*)$ /$1 break; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade-Insecure-Requests 1; proxy_set_header X-Forwarded-Proto https; }
在安全规则中,放行80和443端口,然后就可以使用域名访问博客了。
三、搭建完成后的halo博客
搭建完成后的博客样子如下,接下来就可以在上面记录自己的学习笔记或者人生感悟了!
四、试用体会
阿里云ECS使用过程中,感觉还是比较简单和容易上手的,而且官网配备了搭建WordPress和Typecho博客、FTP服务器、GitLab部署和个人网盘等等应用的实验,非常适合小白入手,而且通过“飞天加速计划·高校学生在家实践”活动可以免费使用ECS。真的非常棒,从搭建博客过程来看,真的是纵享丝滑!