solo 个人博客搭建(支持 https)

DattyRabbit 的个人博客 一个非典型性程序员 本文由博客端 https://www.dattyrabbit.cn 主动推送

前言

从去年就有想开始记录一些博客的想法,想把一些学习中的心得作为总结记录,或者一些其他的跟代码无关的东西也在想做记录的时候用博客的方式记录一下。

但是当时看了下博客园,CSDN 这些,感觉同质化太严重,后来还觉得弄一个偏个人向的博客。

其实选择 solo 也是去年就决定好的。只是因为当时在正好我阿里云的服务器被墙掉,然后换成百度云的服务器,而换成百度云的服务器之后,也不知道是当时台服务器是什么原因(另一台海外的服务器就没问题,但是因为海外的服务器主要是搭梯子的,而且绑定的域名是。top 的,感觉不太主流,就没用海外的服务器搭建)。通过 docker 的方式去搭建 solo 一直没成功,最后好久也没解决掉,所以当时搭建个人博客的事情也就被搁置了。

正好今年百度云的服务器到期了,换成华为云的服务器,索性又想起把个人博客搭建起来。顺便把一些之前的服务器上要迁移过来的东西都弄一弄,记录一下。以后再迁移,好作为参考。

这里不得不再多说一句。

购买了云服务器之后,一定要第一时间去改远程的端口。不要用默认的 22

或者直接改成 RSA 的密钥对登录。

之前的服务器都没注意这个问题,一台是天天被各种尝试登录。

还有一台百度云的直接就中了挖矿的病毒。当时我还不知道中毒了,后来是发现 nginx 总是挂掉,去排查问题才发现中了挖矿的病毒。

所以有自己的服务器的朋友,一定要做好最基本的安全保护。

开源博客选型

相信对于搭建个人博客有兴趣的朋友,应该都是不想在一些类似 CSDN,博客园,简书,segmentfault,知乎等等平台去进行创作的。

可能原因并不是因为他们不好,或者是想要自己有更多的权限,或者是其他原因。

而我的话,是觉得用这些,没有去自己搭建一个个人博客来得酷。

当时就是简单的在 GitHub 上搜了一下个人博客,想找一找有没有相关的开源项目。

当时有看到其他的一些诸如 halo,hexo 这样的开源博客框架,但是看到 solo 的时候,就发现这就是我想要的,因为以前经常搜出来的一些比较好的原创文章,他们的博客页面都有一个看板娘。一看到 solo 也有这个插件,直接就开始进行了深入了解。

而且了解之后才发现。原来之前看到的一些博客,竟然都是 solo 搭建的,而且 solo 的背后,还有一个叫做 Symphony 的论坛框架。而这款开源框架的作者 D 大,所开创的这个论坛,就是黑客派,不知道正在读文章的你有没有听说过。

在了解了作者对于他所提出的 B3log 的想法后,当即就决定了,要用 solo 来搭建自己的个人博客系统。这就是为什么选中 solo 的一些来龙去脉。

关于 B3log 的构思:https://hacpai.com/article/1546941897596

关于 solo 的介绍:https://solo.b3log.org/?utm_source=hacpai.com

GitHub 地址:https://github.com/88250/solo

搭建流程

我是选用的 docker 搭建的方式。其他的具体流程可以参考 solo blog 在 GitHub 中的文档。

我个人是参照 D 大在 B 站发布的 docker 搭建的视频教程来做的。这里直接给出链接,有兴趣自己去搭的就去照着视频来做就好了。、

视频地址:

https://www.bilibili.com/video/BV1Yk4y1q7rV(docker 搭建)

https://www.bilibili.com/video/BV1tK411n7R3(本地搭建,以及 solo 后台的功能介绍简单教程,还有不想自己去租服务器搭建博客的也可以看这里)

那么我这边就直接进入下一 part,例举下搭建过程中遇到的问题吧,希望能帮助到遇到同样问题的朋友。

遇到的一些问题

1.docker 启动 solo 项目失败

这个问题不是本次搭建中遇到的问题,但是去年在搬瓦工的服务器上尝试的时候,最初有遇到过 docker 运行 solo 但是没成功的情况。所以这个问题我暂时找不到截图,因为当时没保存,现在也没法复现。

解决方式

这个因为没有图片,所以只能大致说一下当时是怎么解决的。

重要的是再运行了 solo 的 docker 启动命令之后,使用

docker logs solo

去查看日志,根据日志来找相应的解决办法。而且有可能是因为之前在安装 docker 的时候,版本太低了。

所以最好在运行 solo 前,先去更新下服务器的安装工具,然后再安装较新版本的 docker。

之前我除了是 docker 的版本造成的问题外,还有遇到过因为数据库的问题而无法成功启动。

这个就是根据日志看看报错内容再去查找解决办法。百度一下应该是有的,我就不再做重复了。

2.nginx 配置域名但是访问不到

这个问题一开始我遇到是真的觉得很神奇,各种丈二和尚摸不着头脑。给大家演示一下。现在是 docker 启动,nginx 也配置完毕。正常访问。

nginx 配置如图下图(具体的配置代码我就不再贴出来了,在之前给出的链接的文档中有,相应参数改成自己的就可以了)

nginx 配置.png

然后浏览器访问页面

搭建成功正常访问.png

然后改一下 nginx 的 server_name。

修改过的 nginx 配置.png

接着换改过的域名访问。就出现失败。

访问失败.png

解决方式

这个问题当时真的是困扰了我好久。

但是实际是一个很愚蠢的问题,我通过更换浏览器访问发现又正常,然后再改一次 server_name 又失败了发现应该是缓存问题。

后来就都是通过使用新开 Chrome 无痕窗口访问就解决了。

3.http 能正常使用,但是改为 https 就无法访问

这个问题大致就和问题 2 的现象差不多,一旦把 nginx 配置和 docker 启动命令都改成 https 的,结果去访问页面,就是访问失败。就不再放图了。

解决方式

可能出现这个问题的原因比较多,需要一一排查。

我讲一下我在最后解决了问题之后推荐的排查方式吧。

  1. 先确定你的服务器 443 端口能够正常访问!!这个真的很重要。可以通过 telnet 或其他工具来测试。如果没通,请先排查 443 端口的不通原因。可以先尝试开启 443 端口。

    iptables -I INPUT -p tcp --dport 443 -j ACCEPT
    

    如果还是没能成功,可以再尝试

    firewall-cmd --zone=public --add-port=443/tcp --permanent  //允许443端口访问
    
    
    
    firewall-cmd --reload //重启防火墙
    

    还有就是保证你的云服务器的控制台中设置的安全组是允许访问 443 端口的。我这里截图是华为云的。
    云平台安全组打开 443 端口.png

  2. 确保了你的 443 端口通了之后,再确定你的 https 的证书没问题。nginx 别设置 solo 的相关配置,先注释掉。最小局部先保证通过。

    具体方法可参考这篇博文 https://www.cnblogs.com/chnmig/p/10343890.html

  3. 现在你能保证你的 ssl 证书没问题了,那再去最后一步,更改 nginx 对于 solo 支持 https 的配置。然后再使用 docker 启动 solo。注意这个时候启动命令需要改相关参数以支持 https,具体操作细节在前文给出的视频教程和 GitHub 中的使用文档中都有。不再赘述。

总结

这次成功使用 docker 搭建 solo 个人博客,时间跨度还挺长的,虽然之前因为各种问题给搁置了。

但是最后也还是成功搭建了起来。并且把老早就准备好的备案和申请的 ssl 证书也用上了。

中间遇到过各种各样的问题,也都通过社区搜索,查询文档,自己控制变量排查等等方式一一解决了。收获也还算是颇多。今后还是要多多记录,多多分享。时间是个好东西,只要去积累,总有一天会质变的,奥里给。

  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1250 引用 • 9447 回帖 • 621 关注
  • 博客

    记录并分享人生的经历。

    243 引用 • 2382 回帖
  • 教程
    123 引用 • 419 回帖 • 5 关注
1 操作
DattyRabbit 在 2020-08-16 15:35:15 更新了该帖

赞助商 我要投放

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • babyQ

    奥里给doge