目录

前言 WeToChat

前提准备

安装宝塔面板

使用 Docker 部署博客系统

域名访问配置

小结


前言 WeToChat

演示一下如何从零搭建一套属于自己的博客系统,包括基本的功能实现,这里直接拉取打包好的 Docker 镜像,一键部署。当然,感兴趣的,可以拉取源代码在本地运行访问!好了,让我们开始愉快地操作吧!

前提准备

云服务器或者本地的虚拟机服务器(这里使用本地虚拟机操作演示)。

成功用 VMware 安装好 CentOS 服务器,配置好网络环境即可。

本地服务器,IP 地址:192.168.1.100。

centos一直重复登录界面 centos7反复登录界面_centos

查看云服务器的备案域名绑定,

确定域名进行了正常备案,才可解析域名访问博客系统。

提一点,这里使用的腾讯云的服务器,当时备案还是挺繁琐的,所以要备案的得提前,毕竟审核也需要一段时间。

centos一直重复登录界面 centos7反复登录界面_csdn_02

云服务器配置安全组

云服务器的,可进入对应的控制台,找到安全组配置,修改对应的出入站规则即可。

centos一直重复登录界面 centos7反复登录界面_centos_03

比如我们开放 9892 位博客系统运行的端口:当然本地环境的,只要配置好对应的防火墙策略即可。

centos一直重复登录界面 centos7反复登录界面_java_04

成功添加:

centos一直重复登录界面 centos7反复登录界面_运维_05

安装宝塔面板

宝塔面板基本介绍

宝塔面板简单来说,就是一个可视化的 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

注意查看安装提示:

centos一直重复登录界面 centos7反复登录界面_运维_06

本地环境的,可编辑好对应的防火墙策略规则,或者直接先关闭防火墙。

成功安装并登陆

浏览器输入访问地址:http://SERVER_IP:8888 (IP 地址对应本地安装的服务器地址)。

登录界面:

centos一直重复登录界面 centos7反复登录界面_运维_07

成功访问界面:

centos一直重复登录界面 centos7反复登录界面_centos_08

计划任务界面:

centos一直重复登录界面 centos7反复登录界面_java_09

软件管理界面:

centos一直重复登录界面 centos7反复登录界面_运维_10

使用 Docker 部署博客系统

好了,前期准备已经 ok,现在开始正式部署环境了。

配置 Docker 运行环境

这里只做演示,个别系统的安装方式、环境方面等等可能会不一样,仅供参考 。

1. 安装必要依赖:

[root@Rucoding ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

安装完毕:

centos一直重复登录界面 centos7反复登录界面_csdn_11

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

centos一直重复登录界面 centos7反复登录界面_运维_12

3. 更新 yum 缓存:

[root@Rucoding yum.repos.d]# yum makecache fast

运行结果:

centos一直重复登录界面 centos7反复登录界面_centos一直重复登录界面_13

安装 Docker

1. 执行安装命令:

[root@Rucoding ~]# yum install docker-ce docker-ce-cli containerd.io

执行过程,输入 y:

centos一直重复登录界面 centos7反复登录界面_centos_14

安装时候,可能会出现尝试获取镜像失败或者进度缓慢等情况,可以更换 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

执行结束:

centos一直重复登录界面 centos7反复登录界面_centos一直重复登录界面_15

2. 启动 Docker 服务

[root@Rucoding ~]# systemctl start docker

3. 查看 Docker 版本

[root@Rucoding ~]# docker --version
    Docker version 19.03.12, build 48a66213fe
    [root@Rucoding ~]#

版本图示:

centos一直重复登录界面 centos7反复登录界面_csdn_16

配置镜像加速

配置镜像加速,是为了待会拉取镜像做准备的,实现秒秒钟 pull。

这里用的是阿里云的镜像加速器,当然,也可以自行前往官网地址配置镜像加速。(阿里云官方找到镜像加速器界面,进行配置即可。)

示意图:

centos一直重复登录界面 centos7反复登录界面_centos一直重复登录界面_17

新建 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

图示结果:

centos一直重复登录界面 centos7反复登录界面_java_18

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 端口。

centos一直重复登录界面 centos7反复登录界面_centos一直重复登录界面_19

centos一直重复登录界面 centos7反复登录界面_csdn_20

创建容器并运行

1. 拉取最新 Halo 镜像

docker pull ruibaby/halo

[root@Rucoding ~]# docker pull ruibaby/halo

centos一直重复登录界面 centos7反复登录界面_centos一直重复登录界面_21

如果 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 ~]#

centos一直重复登录界面 centos7反复登录界面_centos一直重复登录界面_22

到此,完成以上操作即可通过 IP 地址:端口访问了。不过还是建议先配置好域名访问,再进行初始化,可跳转至“域名访问配置”。

登录访问

登录访问,本地地址: http://192.168.1.100:9892。

1. 成功进入安装向导界面(设置基本的博客信息)

centos一直重复登录界面 centos7反复登录界面_运维_23

初始化完成,登录后台地址 http://192.168.1.100:9892/admin/,输入设置好的用户名密码信息。

centos一直重复登录界面 centos7反复登录界面_运维_24

2. 登入博客后台

centos一直重复登录界面 centos7反复登录界面_csdn_25

3. 访问前端地址

centos一直重复登录界面 centos7反复登录界面_运维_26

centos一直重复登录界面 centos7反复登录界面_运维_27

主题可选的样式有很多,自行在后台设置即可。

更新 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

配置结果:

centos一直重复登录界面 centos7反复登录界面_java_28

3. 重启 Caddy 服务

[root@Rucoding ~]# systemctl restart caddy

4. 查看 Caddy 运行状态

[root@Rucoding ~]# systemctl status caddy

运行结果:

centos一直重复登录界面 centos7反复登录界面_运维_29

到这里,关于 Caddy 反向代理的配置也就完成了,现在可以访问一下自己的域名,并进行 Halo 的初始化了。

注:在设置了反向代理之后,请一定记得去 Halo 的管理端设置一下正确的博客地址,否则可能会造成资源获取不成功。

5. 输入域名访问

成功界面:

centos一直重复登录界面 centos7反复登录界面_csdn_30

CDN 网站加速配置

上述访问的网站,配置了 CDN 加速,这里也顺带提一下 CDN 服务。

CND 加速主要是加速静态资源,如网站上面上传的图片、媒体,以及引入的一些 Js、css 等文件。

配置的是腾讯云的 CDN 加速包,进入腾讯云后台配置即可。

更多详情可直接参考腾讯云 CDN 配置使用手册。

示意图:

centos一直重复登录界面 centos7反复登录界面_centos一直重复登录界面_31

小结

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 检测:

centos一直重复登录界面 centos7反复登录界面_centos一直重复登录界面_32

返回不同的地址即生效的:

centos一直重复登录界面 centos7反复登录界面_csdn_33

WeToChat,Rucoding Today !