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

2020-08-16

前言

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

但是当时看了下博客园,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个人博客搭建(支持https)
作者:DattyRabbit
地址:https://www.dattyrabbit.cn/articles/2020/08/16/1597562400409.html