“记录本站搭建全过程,为想要自己搭建博客的朋友提供一个参考”
在我的博客网站中查看本文
Docker是一个很方便的跨平台应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上。Docker中各个容器
质检各自是一个“沙箱”,彼此隔离,但其也提供了丰富的容器之间互联的方式使得各个容器质检能够既保持独立,又能彼此交互。Docker也提供了挂载
这一功能,开发者可以将一些容器的数据挂载到宿主机的指定位置实现数据层面的宿主机与容器质检的互联。
本文假设你已经安装了Docker并已知晓基础的使用方法,如果你之前没有使用过Docker,你需要首先自行了解一些Docker的基本概念:容器
,镜像
,挂载
。此外,你还需要一个已经安装好的Docker环境,这一点笔者不复赘述,百度中教程还是挺多的,笔者更推荐官网文档,都是一些很基础的单词,应该大体可以理解。
Nginx是一个是一个高性能的HTTP和反向代理web服务器,本文的博客将依托Nginx进行访问。
Jekyll是一个优秀的静态博客网站生成器。Jekyll被广泛用于很多程序员的博客,很多Jekyll博客都是搭建在Github Pages上,通过一些简单的命令就能够快速将markdown的文件转化为对应的静态网页文件并部署上传到Github Pages中去。
虽然Jekyll最广泛的使用方法还是部署到Github Pages中,但是Github Pages不利于百度等国内搜索引擎SEO优化(Github官宣禁止百度爬虫,认为不安全)。当然,国内很多优秀的代码管理平台,比如笔者之前使用的Coding,也支持Pages
服务,也是一个不错的选择。
笔者本身手头上恰好有阿里云的服务器,再加上Pages
服务本身限制还是挺多的,如果是自己的服务器很多地方就更加方便,因此就开始尝试自己搭建环境进行部署。
与Jekyll相比较的有一个叫做Hexo的静态博客系统,总体上和jekyll相似,大家可以按照喜好选用,本文以Jekyll为例展开讲解。
官网文档
除此以外,笔者也推荐安装完顺便安装一下Portainer,这个是一个很方便的Docker图形化管理工具,当然这不是本文的必需品。
这里第一次创建实例的目的其实是为了拿默认的配置文件,然后我们就可以剥离出来放在宿主机里做配置,你如果之前已经有Nginx的主配置文件,也可以省去第一次创建实例的一步。
docker pull nginx
mkdir /home/nginx/log
mkdir /home/nginx/config
mkdir /home/nginx/html
docker run --name nginx-test -p 80:80 -d nginx
docker ps
docker cp 短id:/etc/nginx/nginx.conf /home/nginx/
docker rm -fv 短id/实例名
docker run —name docker_nginx -d -p 80:80 -p 443:443\
—restart always\
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/config:/etc/nginx/conf.d \
-v /home/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/html:/usr/share/nginx/html nginx
Welcome to nginx
的提示 gem install bundler jekyll
jekyll new my-awesome-site
cd my-awesome-site
jekyll server
笔者这里使用的是Hux(黄轩)先生制作的Jekyll主题,在此也感谢Hux的心血付出。
主题的GitHub地址:点击此处
jekyll build
_site
,将此文件夹下所有内容上传到服务器中的/home/nginx/html
中(之前配置的Nginx网站目录)笔者使用的阿里云ECS,备案流程相对简单,直接在阿里云官网点击备案,按照流程一步一步来就可以了
网上在线提交相关材料就可以,需要注意一个问题,截止目前官网上传图片的方式还是flash的方式,可能会出现无法上传等问题,笔者后来是在一台Windows电脑下使用Firefox浏览器并用手机热点进行联网才上传成功的
这次博客从开始计划到备案完成总共花了大概一周时间(博客部署和备案并行)。
关于备案,笔者第一次备案,工信部审核大概花了5天时间,公安部审核花了2天时间。