大家都说写博客是一个很好的学习方式。我也深表认同,因为想要写出有质量的博客而不是一味的拷贝,是需要现有深度学习的过程。写博客恰恰是一个很好的切入点,可以通过输出的需求反向逼迫自己去学习。
自建博客网站,本质上还是搭建一个 Web 网站。所以需要准备的东西主要是网站选型定位等多个因素共同决定的。接下来逐步说明我的一个选择过程。
网站被访问的入口也是万维网上的身份名片,可以说是比较重要的。当然这个重要是相对的,例如你需要在国内做 SEO 或者你需要一个有特殊寓意的名称等等,这些都是在选择域名时需要考虑的问题。
在国内域名注册商也有不少,最常见的就是阿里、腾讯系的,也有一些其他的我就不列举了。我选了一个我还满意的作为我的域名:devnolo.com 有兴趣可以来逛逛。
网站需要一个容器,这个容器就是服务器,一个拥有公网 IP 的服务器。固定的公网 IP 后续在备案过程中会用到,不备案的可以使用家用动态 IP 做 DDNS 都是可行的。
国内的云服务器厂商基本都要求网站备案才能访问,不想备案的就不要考虑了。
我选择的是云服务器,我就说说选择服务器的一些点。服务器有两个重要的点,第一个是服务器的硬件资源如:CPU、内存、磁盘,这个限制了网站的处理能力;第二个是带宽资源,这个限制了网站访问的数据流量。
最后说一下我购买的配置,不建议初建网站以此做参考。
我所知道的博客工具有 WordPress、B3log Solo、Hexo 等等。我这里选择了 Solo,因为我最初的打算是做静态网站,而 Solo 既可以生成静态网站也可以做动态,满足我的初始需求。后期有时间或者有新需求再折腾其他的。
现在安装博客工具已经简化了很多了。随着容器化技术的发展,几乎主流的博客工具都支持 Docker 等容器一键化部署,不再受裸金属的部署困扰。
B3log Solo 的 Docker 安装在这里简单说两句。我使用的是 docker-compose,docker 和 docker-compose 的安装就不展开讲了,后期可能会整理笔记出来。我用的镜像是 b3log/solo
,docker-compose 的 yml 示例如下:
version: '3.6'
services:
solo:
image: 'b3log/solo'
restart: 'always'
container_name: 'solo'
environment:
RUNTIME_DB: 'MYSQL'
JDBC_USERNAME: 'solo'
JDBC_PASSWORD: '123456'
JDBC_DRIVER: 'com.mysql.cj.jdbc.Driver'
JDBC_URL: 'jdbc:mysql://192.168.1.100:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC'
ports:
- '8080:8080'
volumes:
- /solo/solo:/opt/solo
博客工具的使用就自己摸索,基本操作一样,也都有相应的引导学习。
再国内是有要求网站做相应的备案,并且大多数云服务器厂商都有要求备案后才能访问网站。所以选择云服务器厂商要注意了。并不是东西准备好了就可以访问了。
前期的准备工作很快就能完成,相对而言网站备案所需要等待的时间会更长一些。在等待过程中总是怀着期待与忐忑的心情。
网站备案在国内做网站是必须的,为了防止在网上从事非法的网站经营活动,打击不良互联网信息的传播,如果网站不备案的话,很有可能被查处以后关停。所以在国内备案还是很有必要的。
网站备案在云服务器厂商有引导服务,所以目前我说的流程仅作为参考。根据引导简单填写网站名词及个人信息就能提交申请,厂商会进行第一次审核,有问题会电话联系并帮助改正。当然避免垃圾电话,厂商会声明他们的电话开头是什么,这些可以放心接听。
提交至工信部 ICP 备案成功后,会有一个 24 小时内需要完成的核验。之后就等待短信、邮件通知你审核通过,并且会要求将备案号添加到网站底部并连接到备案查询网站。
公安备案也是类似的,想到于到系统中登记一下,这个网站是属于谁的,由谁负责。而且网站关闭也是需要来做一次注销操作。
至此,网站应该说是完全可以访问了。
部署工作可以在备案的过程中完成,唯一的问题就是以为未完成网站备案就是不能访问。
部署工作不在这里详说,使用动态网站的工具一般自带 Nginx、Tomcat 等 Web 容器。但是选用静态网站就需要自己部署 Web 容器,像我就是使用的 Nginx 做为静态网站的 Web 容器。
我们都知道现在比较热门的 HTTPS 服务是收费的,同样也有免费的服务。只是有一定的限制,云服务器厂商或者三方 HTTPS 服务商都有相应的提供。