当前位置: 代码迷 >> 综合 >> 四、快速搭建一套现代化的个人独立博客系统,给爱写博客的你(part2 正文)
  详细解决方案

四、快速搭建一套现代化的个人独立博客系统,给爱写博客的你(part2 正文)

热度:82   发布时间:2023-12-22 06:46:09.0

目录

前言 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 5wget -O /etc/yum.repos.d/CentOS5-Base-163.repo http://mirrors.163.com/.help/CentOS5-Base-163.repoCentOS 6wget -O /etc/yum.repos.d/CentOS6-Base-163.repo http://mirrors.163.com/.help/CentOS6-Base-163.repoCentOS 7wget -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 --versionDocker 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: 8090spring:datasource:type: com.zaxxer.hikari.HikariDataSource# H2 Database 配置,如果你需要使用 MySQL,请注释掉该配置并取消注释 MySQL 的配置。driver-class-name: org.h2.Driverurl: jdbc:h2:file:~/.halo/db/halousername: adminpassword: 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: falsepath: /h2-consoleenabled: 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/haloc33ac81d552513a1dfa8a680e47a1a5a8518369cb2e0538976a8a015ec093ace[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 编辑 Caddyfilevim /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 !

  相关解决方案