“记录本站搭建全过程,为想要自己搭建博客的朋友提供一个参考”
在我的博客网站中查看本文

前言与准备

Docker

Docker是一个很方便的跨平台应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上。Docker中各个容器质检各自是一个“沙箱”,彼此隔离,但其也提供了丰富的容器之间互联的方式使得各个容器质检能够既保持独立,又能彼此交互。Docker也提供了挂载这一功能,开发者可以将一些容器的数据挂载到宿主机的指定位置实现数据层面的宿主机与容器质检的互联。

本文假设你已经安装了Docker并已知晓基础的使用方法,如果你之前没有使用过Docker,你需要首先自行了解一些Docker的基本概念:容器镜像挂载。此外,你还需要一个已经安装好的Docker环境,这一点笔者不复赘述,百度中教程还是挺多的,笔者更推荐官网文档,都是一些很基础的单词,应该大体可以理解。

Nginx

Nginx是一个是一个高性能的HTTP和反向代理web服务器,本文的博客将依托Nginx进行访问。

Jekyll

Jekyll是一个优秀的静态博客网站生成器。Jekyll被广泛用于很多程序员的博客,很多Jekyll博客都是搭建在Github Pages上,通过一些简单的命令就能够快速将markdown的文件转化为对应的静态网页文件并部署上传到Github Pages中去。

虽然Jekyll最广泛的使用方法还是部署到Github Pages中,但是Github Pages不利于百度等国内搜索引擎SEO优化(Github官宣禁止百度爬虫,认为不安全)。当然,国内很多优秀的代码管理平台,比如笔者之前使用的Coding,也支持Pages服务,也是一个不错的选择。

笔者本身手头上恰好有阿里云的服务器,再加上Pages服务本身限制还是挺多的,如果是自己的服务器很多地方就更加方便,因此就开始尝试自己搭建环境进行部署。

与Jekyll相比较的有一个叫做Hexo的静态博客系统,总体上和jekyll相似,大家可以按照喜好选用,本文以Jekyll为例展开讲解。

让我们开始吧

安装Docker(ubantu为例)

官网文档

除此以外,笔者也推荐安装完顺便安装一下Portainer,这个是一个很方便的Docker图形化管理工具,当然这不是本文的必需品。

安装Nginx到Docker中

这里第一次创建实例的目的其实是为了拿默认的配置文件,然后我们就可以剥离出来放在宿主机里做配置,你如果之前已经有Nginx的主配置文件,也可以省去第一次创建实例的一步。

  • 拉取Nginx镜像
docker pull nginx
  • 创建挂载目录(分别对应日志目录、配置目录、网站文件目录)
mkdir /home/nginx/log
mkdir /home/nginx/config
mkdir /home/nginx/html
  • 启动一个Nginx容器实例
docker run --name nginx-test -p 80:80 -d nginx
  • 查看实例的短id
docker ps
  • 取出默认的配置文件复制到宿主机目录中
docker cp 短id:/etc/nginx/nginx.conf /home/nginx/
  • 移除刚刚创建的Nginx实例
docker rm -fv 短id/实例名
  • 重新创建一个拥有挂载目录的,能够自动重启的Nginx实例
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
  • 至此Nginx就算配置安装完成了,可以尝试访问一下ip,应该有Welcome to nginx的提示

安装Jekyll环境(本地电脑安装即可)

  • 首先你需要安装Ruby环境,这一步因为系统环境不一样可能安装步骤也不一样,Mac系统可以参考这里,其他用户百度查询一下应该还是有很多教程的
  • 安装完Ruby环境后便可以安装Jekyll了,目前官网提供的安装命令是:
 gem install bundler jekyll
  • 至此,Jekyll就安装完了,你可以输入一下命令创建一个简单的Jekyll博客进行预览(一条一条输入):
jekyll new my-awesome-site
cd my-awesome-site
jekyll server
  • 访问127.0.0.1:4000就可以查看创建的博客了

选用Jekyll主题

笔者这里使用的是Hux(黄轩)先生制作的Jekyll主题,在此也感谢Hux的心血付出。

主题的GitHub地址:点击此处

生成静态博客文件并部署到Nginx中

  • 输入一下命令生成静态文件:
jekyll build
  • 你的博客目录下应该会生成一个文件夹_site,将此文件夹下所有内容上传到服务器中的/home/nginx/html中(之前配置的Nginx网站目录)
  • 访问你的服务器ip,大功告成

后续备案

工信备案

笔者使用的阿里云ECS,备案流程相对简单,直接在阿里云官网点击备案,按照流程一步一步来就可以了

公安备案

网上在线提交相关材料就可以,需要注意一个问题,截止目前官网上传图片的方式还是flash的方式,可能会出现无法上传等问题,笔者后来是在一台Windows电脑下使用Firefox浏览器并用手机热点进行联网才上传成功的

总结

这次博客从开始计划到备案完成总共花了大概一周时间(博客部署和备案并行)。
关于备案,笔者第一次备案,工信部审核大概花了5天时间,公安部审核花了2天时间。

Nginx+Docker+Jekyll+阿里云ECS+备案搭建博客全记录相关推荐

  1. 阿里云轻量级服务器搭建博客网站教程(入门级别搭建)

    阿里云轻量级服务器搭建博客网站教程 先给大家看一下最后的成果:zhangshuaiqi.xyz 使用宝塔面板部署ssl证书,伪静态设置,一键部署wordpress 服务器类型:阿里云轻量级服务器2核4 ...

  2. 如何使用阿里云虚拟主机搭建博客(一)初识篇

    原文地址 当今是互联网的时代,很多人都特别希望能有个专属的个人独立博客,遗憾的是,有些人虽然对个人博客很感兴趣,但却不懂得网站建设的相关技术,没法搭建自己的博客,但在这篇博客中我将一步步教你如何搭建自 ...

  3. 如何使用阿里云虚拟主机搭建博客(三)设置篇

    原文地址 七.博客设置 安装好博客系统后我们下面就通过登录进入仪表盘开设置网站内容 提示:关于博客设置这里就介绍通用的功能,因为你使用的主题的设置都不太一样,需要你去探索,所以这里只介绍些常用的功能: ...

  4. 阿里云ECS服务器搭建wordpress个人博客网站【详细图文教程】

    阿里云ECS服务器搭建wordpress个人博客网站[小白专用的图文教程] 在阿里云上搭建使用个人博客主要分为以下几个步骤: 1.购买阿里云ECS主机 2.购买域名 3.申请备案 4.环境配置 5.安 ...

  5. 手把手教你在阿里云ECS上搭建惊艳的博客

    手把手教你在阿里云ECS上搭建惊艳的博客 相信大多数人都有自己搭建博客网站的想法,本文就手把手一步一步的进行,最终结果类似如下样式: 网站软件的选择 软件选择成熟而免费的WordPress,WordP ...

  6. 在阿里云ECS上搭建Skynet服务器与Unity通信

    在阿里云ECS上搭建Skynet服务器与Unity通信 创建阿里云ECS实例 Skynet搭建 服务端代码部分 客户端部分(Unity) 创建阿里云ECS实例 这部分的话按照阿里云流程去做就可以了.也 ...

  7. 阿里云ECS服务器搭建Mysql数据库

    阿里云ECS服务器搭建Mysql数据库 一.服务器系统: Alibaba Cloud Linux 3.2104 LTS 64位 二.服务器文件夹创建 [说明]:由于服务器为新申请,故服务器为空白服务器 ...

  8. 阿里云ECS服务器搭建-阿里云开发者社区

    阿里云ECS服务器搭建 一.服务器搭建的网址入口 有试用资格: 点击进入阿里云云产品试用中心,选择下图产品,选择试用30天. 无试用资格: 点击进入ecs主页,如下图,点击立即购买,花费约为0.8. ...

  9. 阿里云ECS服务器搭建

    阿里云ECS服务器搭建流程 一.服务器搭建的网址入口: 有试用资格: 点击进入阿里云云产品试用中心,选择下图产品,点击试用30天. 无试用资格: 点击进入ecs主页,如下图点击立即购买,约花费0.08 ...

最新文章

  1. ComplexHeatmap绘制热图(一)
  2. 一些SqlServer常见和入门操作
  3. linux 基本脚本编写
  4. OpenGL 变换Transformations
  5. ElasticSearch---------------------step2,了解elasticsearch相关的基本概念
  6. 学生成绩统计c语言课程设计,学生成绩管理系统-C语言课程设计
  7. Java笔记(一)向上向下转型,枚举,初始化,可变长参数,代理,多态,继承
  8. Python网页爬虫--
  9. 进入Docker容器的4种方式
  10. 3.7 钱包、帐户、token、智能合约、action、权限、权重和阀值之间关系
  11. 黄山旅游自助攻略住宿行程路线篇
  12. fat32文件系统详细介绍_文件系统介绍
  13. 【15章Java 8 新特性】最全Java 8新特性 详解
  14. 完美黑苹果clover EFI BigSur11.2 神舟K580c i5 BCM94360HMB WIFI蓝牙二合一网卡
  15. python程序设计实训心得体会_20194220 实验四《Python程序设计》实验报告
  16. 父级fixed_子元素使用position:fixed,导致他的宽度不能和父元素保持一致的解决方案...
  17. 8、C语言printf函数与scanf函数
  18. FND_MESSAGE使用总结
  19. 2.6_11 Redis主从复制、哨兵模式、分片集群
  20. hypermesh和lsdyna联合仿真计算某汽车座椅进行的头冲吸能实验

热门文章

  1. Laravel 上传文件大小改为200M
  2. 如何度过中年危机(转)
  3. Xshell 常见使用
  4. UnixLinux 读书摘抄(简介)
  5. Python入门(二十三)- 文件操作1
  6. WSL与WIN怎么互通有无?
  7. 《程序员修炼之道——从小工到专家》读后感一
  8. 计算机培训如何做,如何做培训课件.doc
  9. OSError: (External) Cublas error, CUBLAS_STATUS_NOT_INITIALIZED. The cuBLAS library was not Initia
  10. 为什么要学数据结构?