使用 Docker 部署 Solo 博客系统

  • 时间:
  • 浏览:
  • 来源:互联网

序言

为什么又搭建了一个博客呢?国内的高性能服务器,闲着也是闲着,还是多折腾一下吧!

Solo 博客系统是用 Java 语言开发的博客程序,具有优异的性能。这里使用 Docker 部署,也是官方推荐的部署方式,配合宝塔控制面板,搭建过程还是比较方便的。这里记录一下我的搭建过程以及使用 Solo 的一些总结。

Github 地址:b3log/solo: 🎸 一款小而美的博客系统,专为程序员设计。
官方网站:Solo - Java 博客系统,Java 开源博客系统

相关环境

服务器系统:CentOS Linux 7.6.1810
Nginx 版本:1.16.0
Mysql 版本:5.7.26
本地 SSH 连接工具:PuTTY Release 0.71

搭建过程

官方教程:Solo 用户指南 - 黑客派

这里我使用宝塔面板安装的 Nginx 和 Mysql,Mysql 数据库推荐 5.7 及以上。由于使用 Docker 部署,需要简单了解一下 Docker 的使用,推荐菜鸟教程:Docker 教程 | 菜鸟教程,我们可以在这里检索 Docker 的各版本的安装教程以及相关使用。

这里以 CentOS 为例,介绍从安装 Docker 到部署(可查看上面的官方教程的链接)Solo 的过程。

CentOS 安装 Docker

首先卸载旧版本 Docker:

sudo yum remove docker \
                docker-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-selinux \
                docker-engine-selinux \
                docker-engine

安装最新版 Docker

#安装必要的系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
#添加软件源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#更新yum缓存
sudo yum makecache fast
#安装Docker-ce
sudo systemctl start docker
#测试是否安装成功
docker run hello-world

若能正常运行 hello-world,则表示 docker 以及成功安装好了。

使用宝塔面板新建一个网站

首先我们看一下官方的 Docker 搭建代码:

docker run --detach --name solo --network=host \
    --env RUNTIME_DB="MYSQL" \
    --env JDBC_USERNAME="root" \
    --env JDBC_PASSWORD="123456" \
    --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
    --env JDBC_URL="jdbc:mysql://127.0.0.1:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \
    b3log/solo --listen_port=8080 --server_scheme=http --server_host=localhost --server_port=

启动参数说明:

  • –listen_port:进程监听端口
  • –server_scheme:最终访问协议,如果反代服务启用了 HTTPS 这里也需要改为 https
  • –server_host:最终访问域名或公网 IP,不要带端口
  • –server_port:最终访问端口,使用浏览器默认的 80 或者 443 的话值留空即可

这里我使用的是二级域名,域名为 article.zhyong.cn,暂不建立数据库。

然后我们可以申请 SSL 证书,直接在面板里申请即可,我申请的是 Let’s Encrypt 证书,并强制 HTTPS 访问。

然后在宝塔面板的数据库中手动添加数据库,根据 Solo 博客系统的数据库要求创建:创建数据库名称为 solo(或其它,对应位置修改 Docker 部署代码即可),字符集使用 utf8mb4,排序规则 utf8mb4_general_ci

然后部署我们的 Docker 代码:

docker run --detach --name solo --network=host \
    --env RUNTIME_DB="MYSQL" \
    --env JDBC_USERNAME="root" \
    --env JDBC_PASSWORD="123456" \
    --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
    --env JDBC_URL="jdbc:mysql://127.0.0.1:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=True&serverTimezone=UTC" \
    b3log/solo --listen_port=8080 --server_scheme=https --server_host=article.zhyong.cn --server_port=

这样我们就成功使用 Docker 部署了 Solo 博客系统并启动了,接下来我们使用 Nginx 配置反向代理。

官方的 Nginx 反向代理代码:

upstream backend {
    server localhost:8080; # Solo 监听端口
}

server {
    listen       80;
    server_name  88250.b3log.org; # 博客域名,如我的就为 article.zhyong.cn

    access_log off;

    location / {
        proxy_pass http://backend$request_uri;
        proxy_set_header  Host $host:$server_port;
        proxy_set_header  X-Real-IP  $remote_addr;
        client_max_body_size  10m;
    }
}

这里我们仅需参考一下即可,因为我们使用宝塔面板时自动帮我们生成了 Nginx 的一些配置,我们手动修改小部分即可。

img

这样全部完成,现在就打开网站吧~

若出现问题,可以使用 Docker 删除容器再重新部署。

docker stop solo
docker rm solo

部署过程中遇到的问题:docker 启动代码中的 --server_host 必须使用对应的域名,否则打开网站报错!

使用感受及总结

总之,Solo 博客系统是非常优秀的,简单说一下我的感受。

最大的特色:小而美(我觉得介于 WordPress 和 Typecho 之间)

它是轻量级的,使用起来非常方便,后台使用 Github 账号登录管理,且连接官方黑客派的 Github 登录账号,这样,官方为我们个人博客内置了文件存储服务(Solo 内置 HTTPS + CDN 文件存储 - 黑客派),真的非常良心。后台管理时,不会刷新整个页面,以及拥有一个非常简洁美观的 Markdown 编辑器,内置了很多款美观大方的主题,可随意切换,并且手机端和电脑端可使用不同的主题(完爆自适应 =.=),并且内置了 30 + 代码高亮主题,可随意选择。

这里讲一下简单优化:

  1. 看板娘插件严重拖慢网站的访问速度,在工具 —— 插件管理中将其关闭
  2. 网站引用了 Github 头像,而此头像网址打开速度超慢甚至打不开,在工具 —— 用户管理中更新一下头像地址即可
  3. 代码高亮主题默认为 Github,此 js 文件打开速度过慢,暂改为 dracula

目前博客总体非常棒,内置的主题使用起来真的方便,美观、大方,加上内置的文件存储服务,棒棒棒~

本文链接http://www.dzjqx.cn/news/show-617378.html