目录
前言 WeToChat
前提准备
安装宝塔面板
使用 Docker 部署博客系统
域名访问配置
小结
前言 WeToChat
演示一下如何从零搭建一套属于自己的博客系统,包括基本的功能实现,这里直接拉取打包好的 Docker 镜像,一键部署。当然,感兴趣的,可以拉取源代码在本地运行访问!好了,让我们开始愉快地操作吧!
前提准备
云服务器或者本地的虚拟机服务器(这里使用本地虚拟机操作演示)。
成功用 VMware 安装好 CentOS 服务器,配置好网络环境即可。
本地服务器,IP 地址:192.168.1.100。
查看云服务器的备案域名绑定,
确定域名进行了正常备案,才可解析域名访问博客系统。
提一点,这里使用的腾讯云的服务器,当时备案还是挺繁琐的,所以要备案的得提前,毕竟审核也需要一段时间。
云服务器配置安全组
云服务器的,可进入对应的控制台,找到安全组配置,修改对应的出入站规则即可。
比如我们开放 9892 位博客系统运行的端口:当然本地环境的,只要配置好对应的防火墙策略即可。
成功添加:
安装宝塔面板
宝塔面板基本介绍
宝塔面板简单来说,就是一个可视化的 Web 端的服务器。可以直接一键安装服务,例如 Mysql 数据库、Tomcat 等等,还可以直观地显示 CPU、内存、流量监控图表,大大提高操作效率。
宝塔面板可以做什么:
- 宝塔面板可一键配置服务器环境,方便在线管理配置;
- 提供了防火墙端口放行以及日常操作日志查看;
- CPU、内存、磁盘 IO、网络 IO 数据等直观监测;
- 计划任务可按指定周期添加执行,支持 Shell 脚本等等。
宝塔面板有哪些特色:
- 为了简化日常需求,宝塔面板上的一键部署源码插件,支持一键部署;
- 还可一键迁移数据,例如数据库。
安装操作
执行一下命令,进行安装即可。
root@Rucoding ~]# yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh
注意查看安装提示:
本地环境的,可编辑好对应的防火墙策略规则,或者直接先关闭防火墙。
成功安装并登陆
浏览器输入访问地址:http://SERVER_IP:8888 (IP 地址对应本地安装的服务器地址)。
登录界面:
成功访问界面:
计划任务界面:
软件管理界面:
使用 Docker 部署博客系统
好了,前期准备已经 ok,现在开始正式部署环境了。
配置 Docker 运行环境
这里只做演示,个别系统的安装方式、环境方面等等可能会不一样,仅供参考 。
1. 安装必要依赖:
[root@Rucoding ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
安装完毕:
2. 添加软件源信息:
[root@Rucoding yum.repos.d]# cd /etc/yum.repos.d/ #进入源配置
[root@Rucoding yum.repos.d]# ls #查看当前源
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Vault.repo epel.repo epel-testing.repo
[root@Rucoding yum.repos.d]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #添加软件源信息
运行结果:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3. 更新 yum 缓存:
[root@Rucoding yum.repos.d]# yum makecache fast
运行结果:
安装 Docker
1. 执行安装命令:
[root@Rucoding ~]# yum install docker-ce docker-ce-cli containerd.io
执行过程,输入 y:
安装时候,可能会出现尝试获取镜像失败或者进度缓慢等情况,可以更换 yum,比如下载 163 Yum 源 repo 文件。
# 163 源 各系统版本 repo 文件对应的下载操作
CentOS 5
wget -O /etc/yum.repos.d/CentOS5-Base-163.repo http://mirrors.163.com/.help/CentOS5-Base-163.repo
CentOS 6
wget -O /etc/yum.repos.d/CentOS6-Base-163.repo http://mirrors.163.com/.help/CentOS6-Base-163.repo
CentOS 7
wget -O /etc/yum.repos.d/CentOS7-Base-163.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
[root@Rucoding yum.repos.d]# cat /etc/redhat-release //查看系统版本
CentOS Linux release 7.8.2003 (Core)
[root@Rucoding yum.repos.d]#
下载对应版本的:
[root@Rucoding yum.repos.d]# wget -O /etc/yum.repos.d/CentOS7-Base-163.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
执行结束:
2. 启动 Docker 服务
[root@Rucoding ~]# systemctl start docker
3. 查看 Docker 版本
[root@Rucoding ~]# docker --version
Docker version 19.03.12, build 48a66213fe
[root@Rucoding ~]#
版本图示:
配置镜像加速
配置镜像加速,是为了待会拉取镜像做准备的,实现秒秒钟 pull。
这里用的是阿里云的镜像加速器,当然,也可以自行前往官网地址配置镜像加速。(阿里云官方找到镜像加速器界面,进行配置即可。)
示意图:
新建 daemon.json 文件:
[root@Rucoding ~]# vim /etc/docker/daemon.json
将下面的配置复制进去即可:(建议登录个人的阿里云账号,复制专属的镜像加速地址)
{
"registry-mirrors": ["https://mj9kvemk.mirror.aliyuncs.com"]
}
重启 Docker:
[root@Rucoding ~]# systemctl restart docker
安装 Halo
1. 自定义配置文件
下载配置文件到 ~/.halo 目录:
curl -o ~/.halo/application.yaml --create-dirs https://dl.halo.run/config/application-template.yaml
执行操作命令:
[root@Rucoding ~]# curl -o ~/.halo/application.yaml --create-dirs https://dl.halo.run/config/application-template.yaml
图示结果:
2. 修改配置文件
#使用 Vim 工具修改配置文件
vim ~/.halo/application.yaml
打开之后我们可以看到:
server:
port: 8090
spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
# H2 Database 配置,如果你需要使用 MySQL,请注释掉该配置并取消注释 MySQL 的配置。
driver-class-name: org.h2.Driver
url: jdbc:h2:file:~/.halo/db/halo
username: admin
password: 123456
# MySQL 配置,如果你需要使用 H2Database,请注释掉该配置并取消注释上方 H2Database 的配置。
# driver-class-name: com.mysql.cj.jdbc.Driver
# url: jdbc:mysql://127.0.0.1:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
# username: root
# password: 123456
# H2 Database 的控制台相关配置,如果你使用的是 MySQL,请注释掉下方内容。
h2:
console:
settings:
web-allow-others: false
path: /h2-console
enabled: false
说明:
- 默认使用的是 H2 Database 数据库,这是一种嵌入式的数据库,使用起来非常方便。需要注意的是,默认的用户名和密码为 admin 和 123456。
- 如果需要使用 MySQL 数据库,需要将 H2 Database 的所有相关配置都注释掉,并取消 MySQL 的相关配置。另外,MySQL 的默认数据库名为 halodb,请自行配置 MySQL 并创建数据库,以及修改配置文件中的用户名和密码。
- 如果需要自定义端口,修改 server 节点下的 port 即可。这里修改为上述提到配置的 port:9892 端口。
3. 修改访问端口
修访问端口,port:9892 端口。
创建容器并运行
1. 拉取最新 Halo 镜像
docker pull ruibaby/halo
[root@Rucoding ~]# docker pull ruibaby/halo
如果 pul 过程慢,记得更换镜像加速地址,可进入阿里云的镜像加速器界面复制加速地址。
2. 创建容器并运行
docker run --rm -it -d --name halo -p 9892:9892 -v ~/.halo:/root/.halo ruibaby/halo
说明:
-
--rm
:停止之后自动删除容器。 -
--name
:容器名。 -
-p
:占用端口,前者为宿主机端口,后者为 Halo 的运行端口,可在 application.yaml 配置。 -
-v
:目录映射,一般不要修改。
执行操作:
[root@Rucoding ~]# docker run --rm -it -d --name halo -p 9892:9892 -v ~/.halo:/root/.halo ruibaby/halo
c33ac81d552513a1dfa8a680e47a1a5a8518369cb2e0538976a8a015ec093ace
[root@Rucoding ~]#
到此,完成以上操作即可通过 IP 地址:端口
访问了。不过还是建议先配置好域名访问,再进行初始化,可跳转至“域名访问配置”。
登录访问
登录访问,本地地址: http://192.168.1.100:9892。
1. 成功进入安装向导界面(设置基本的博客信息)
初始化完成,登录后台地址 http://192.168.1.100:9892/admin/,输入设置好的用户名密码信息。
2. 登入博客后台
3. 访问前端地址
主题可选的样式有很多,自行在后台设置即可。
更新 Halo 版本
#停止容器
sudo docker stop halo
#拉取最新的 Halo 镜像
sudo docker pull ruibaby/halo
#创建容器
docker run --rm -it -d --name halo -p 9892:9892 -v ~/.halo:/root/.halo ruibaby/halo
域名访问配置
推荐 Caddy 配置
Caddy 是一款使用 Go 语言开发的 Web 服务器。其配置更为简洁,并可以自动申请及配置 SSL 证书。
1. 安装 Caddy
[root@Rucoding ~]# yum install caddy -y
2. 配置 Caddy
# 下载 Halo 官方的 Caddy 配置模板
curl -o /etc/caddy/conf.d/Caddyfile.conf --create-dirs https://dl.halo.run/config/Caddyfile
下载完成之后,我们还需要对其进行修改。
#使用 vim 编辑 Caddyfile
vim /etc/caddy/conf.d/Caddyfile.conf
配置结果:
3. 重启 Caddy 服务
[root@Rucoding ~]# systemctl restart caddy
4. 查看 Caddy 运行状态
[root@Rucoding ~]# systemctl status caddy
运行结果:
到这里,关于 Caddy 反向代理的配置也就完成了,现在可以访问一下自己的域名,并进行 Halo 的初始化了。
注:在设置了反向代理之后,请一定记得去 Halo 的管理端设置一下正确的博客地址,否则可能会造成资源获取不成功。
5. 输入域名访问
成功界面:
CDN 网站加速配置
上述访问的网站,配置了 CDN 加速,这里也顺带提一下 CDN 服务。
CND 加速主要是加速静态资源,如网站上面上传的图片、媒体,以及引入的一些 Js、css 等文件。
配置的是腾讯云的 CDN 加速包,进入腾讯云后台配置即可。
更多详情可直接参考腾讯云 CDN 配置使用手册。
示意图:
小结
1. 基本的 Linux 指令掌握
基本命令,可以参考之前写的文章,都有详细说明使用,日常反复操作,提升熟练度。
2. 宝塔面板了解
宝塔面板是一款可视化的 Web 服务端工具,可一键配置服务器环境,方便在线管理配置;支持多种功能实现,简单上手,省事省力。更多了解可访问官方地址:宝塔面板。
3. Docker 容器
Docker 作为一个软件集装箱化平台,可以让开发者构建应用程序时,将它与其依赖环境一起打包到一个容器中,然后很容易地发布和应用到任意平台中。
上述只是简单提了安装,还有基本的运行指令,更多了解可访问官方网址:Docker 官方文档_安装教程。
4. 反向代理 Caddy
Caddy 是一款使用 Go 语言开发的 Web 服务器。其配置更为简洁,并可以自动申请及配置 SSL 证书。
安装操作起来也是简单,当然,也可使用 Nginx 进行反向代理。
5. CDN 加速配置
CDN 全称 Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。
例如上述提到 CDN 加速服务,配置完 CNAME 后,如何去验证 CDN 服务是否已经生效呢,这时可以 ping 一下所添加的加速域名。
ping 检测:
返回不同的地址即生效的:
WeToChat,Rucoding Today !