使用GitHub做个人博客
前言
用过市面上主流的blog
程序,也用Django
自己写过开源的博客程序July(170+Star),慢慢的发现没太多精力去打理维护,干脆直接放GitHub
当静态页面算了,之前也用过Hexo
、jekyll
等静态程序,但使用起来还是繁琐,体验不到写作的乐趣。
所以,干脆直接放GitHub
把,简单粗暴,你可能只需要做一件事情,就是准备好一个GitHub
账号,再准备一个域名,不论备案与否。
创建GitHub仓库
假设你已经有GitHub
账号,如果还没有点我注册,登录你的账号,创建一个仓库
仓库名、描述等信息,填写一个你喜欢的就好。
# 下载创建好的仓库
$ git clone https://github.com/anshengme/blog.git
$ cd blog/
$ echo 'Hello, Ansheng!' > README.md
# 绑定的域名
$ echo 'blog.ansheng.me' > CNAME
$ git add .
$ git commit -a -m "2017-05-26 23:19:08"
# 提交到仓库中
$ git push
这时候访问你的用户名
+github.io/blog
应该就能出现Hello, Ansheng!
字样,但这并不是我们想要的,我想直接访问blog.ansheng.me
就出现想要的结果,应该怎么做呢?
域名绑定
上步骤在仓库中的CNAME
写入了blog.ansheng.me
,其实我们只需要在自己的域名管理后台添加一条cname
记录指向到anshengme.github.io
就可以了,如下图所示:
我添加了两条记录,@
和blog
,因为我启动了ansheng.me
和blog.ansheng.me
。
HTTPS跳转
这里我使用的是Cloudflare
提供的免费CDN服务,并且开启HTTPS
以及HTTP2
,只是为了一个小绿锁,目测现在大部分的站点都已经开启了,不用总感觉哪里不对劲(档次低)。
假设你已经注册了Cloudflare
账号,也已经绑定了你的域名,注意,这里绑定域名的时候需要把Nameserver
指向Cloudflare
所提供的,不然不能提供CDN
服务,比如我的域名在阿里云
买的,但是把NS
改成Cloudflare
的了
如果你已经将NS指向到了Cloudflare
中,请确保你的域名状态如下所示
域名状态一定要是Active
才可以哦。
开启SSL
在Cloudflare
的站点管理页面,切换到Crypto
这个标签页。将SSL
的模式改为full
开启之后稍等片刻你就可以通过https
进行访问了,但是你会发现当访问http
的时候并不会自动跳转到https
,所以,你可能还需要下面的操作。
强制跳转到HTTPS
切换到Page Rules
页,添加一条页面规则
http://*ansheng.me/*
填写完毕之后点击Save and Deploy
就可以了,可能需要一段时间,毕竟有缓存。
遇到的坑
想过使用阿里云的CDN做强制HTTPS跳转,但巨麻烦,因为阿里云在跳转的时候不能与原域名重复,所以,每个https域名都必须做两条记录,而且配置的CDN不知道什么时候神效,我前天晚上登录两三个小时都没生效,所以直接换Cloudflare
了,免费的把,只要是这。
$ curl -I https://blog.ansheng.me
HTTP/2 200
date: Fri, 26 May 2017 15:52:54 GMT
content-type: text/html; charset=utf-8
set-cookie: __cfduid=d76f0ba8019b6ca9aecc7420de5e6ac5c1495813974; expires=Sat, 26-May-18 15:52:54 GMT; path=/; domain=.ansheng.me; HttpOnly
last-modified: Fri, 26 May 2017 05:58:36 GMT
access-control-allow-origin: *
expires: Fri, 26 May 2017 12:10:36 GMT
cache-control: max-age=600
x-github-request-id: 9196:1FDB:577B6E:7848FF:592818E4
via: 1.1 varnish
age: 5
x-served-by: cache-sjc3646-SJC
x-cache: HIT
x-cache-hits: 1
x-timer: S1495813974.473891,VS0,VE1
vary: Accept-Encoding
x-fastly-request-id: 2dc90b55edced17846d414909da9b20e89fdcccc
server: cloudflare-nginx
cf-ray: 3651e77c68d96bfe-SJC
上面是CDN服务器返回的数据,真的是支持HTTP2了,虽然访问还是慢之类的,但是不用操心续费了。
还有一个就是如果你写的.md
文件格式有错误是可以在下面的页面看到的
如果你每次上传的.md
文件格式没什么错误的话会提示你 Your site is published at http://blog.ansheng.me/
,如果格式错了,会直接提示你那个文件第几行出现语法错误,还是很智能的。
总结
作为一名程序员,使用Markdown
写作是标配了,用了之后你会发现真的是太棒了。
使用GitHub做个人博客的更多相关文章
- 用Jekyll在github上写博客——《搭建一个免费的,无限流量的Blog》的注脚
本来打算买域名,买空间,用wordpress写博客的.后来问了一个师兄,他说他是用github的空间,用Jekyll写博客,说很多人都这么做.于是我就研究了一下. 比较有价值的文章有这么几篇: htt ...
- 利用github page搭建博客
为什么选择GitHub Pages? 很多人用 wordpress,你为什么要用 github pages 来搭建? 1.github pages有300M免费空间,资料自己管理,保存可靠: 2.学着 ...
- 在github上搭建博客(使用Jekyll)
简单说,只需要三步,就可以在 Github 搭建起一个博客: 在 Github 上建一个名为 xxx.github.io 的库: 把看中了的 Jekyll 模板 clone 到本地: 把这个模板 pu ...
- 使用Jekyll搭建免费的Github Pages个人博客
一.Git 1.Git概述 Git is a free and open source distributed version control system designed to handle ev ...
- 零基Github Page个人博客建立教程无限的自由流动
本文介绍了什么是Github Page.以及如何使用Github Page搭建一个免费的.无限流量的个人博客并绑定独立域名. 一.前言 1.1 为什么要用Github Page搭建博客 借用阮一峰老大 ...
- 用Jekyll在github上写博客
用Jekyll在github上写博客——<搭建一个免费的,无限流量的Blog>的注脚 本来打算买域名,买空间,用wordpress写博客的.后来问了一个师兄,他说他是用github的空间, ...
- 《Hexo+github搭建个人博客》
<Hexo+github搭建个人博客> 文/冯皓林 完稿:2016.4.22-2016.4.23 注意:本节教程只针对Windows用户.本教程由无人赞助,赞助写出. <Hexo+g ...
- 可能是最详细的 Hexo + GitHub Pages 搭建博客的教程
前言:博主目前大三,Web 前端爱好者.写博客的好处,不是为了写而写,而是一个记录思想的过程.不要考虑它能带给你什么,而是你自己从中收获了什么. 最近刚好有空,于是就参照网上的各种教程,搭建了一个博客 ...
- Hexo + github 打造个人博客
前两年开始用 wordpress 搭了一个网站,但服务器是在 Linode 上,之所以要放在 Linode 上,要从买的域名说起,因为我买的域名是 fengzheng.pub ,.pub 是不允许备案 ...
随机推荐
- KISS
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈 ...
- Ubuntu 13 Zookeeper 集群配置
一. 目标 在Linux集群搭建Zookeeper集群,并配置管理Web管理系统. 二. 先决条件 本文档中基于VirtualBox Ubuntu Server 13.04 虚机(启动SSH服务器)构 ...
- Android LayoutInflater布局填充器
Android LayoutInflater布局填充器 把一份xml布局文件转为View对象,这就是layoutinflater的作用. 对于一个没有被载入或者想要动态载入的界面,都需要使用Layou ...
- mount命令汇总
(一)挂接命令(mount) 首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用到的. 命令格式: mount [-t vfstype] [-o op ...
- [Android Pro] 查看 keystore文件的签名信息 和 检查apk文件中的签名信息
1: 查看 keystore文件的签名信息 keytool -list -v -keystore keystoreName -storepass keystorePassword 2: 检查apk文件 ...
- xUtils怎样通过注解对FindViewById进行封装
之前讲到了介绍了一下xUtils的基本用法,今天我们就来具体介绍一下关于xUtils中的ViewUtils模块. 在ViewUtils模块中我们首先看到的是它採用了一种注解的方式进行声明,那么我们首先 ...
- Spring中AOP的理解
1.AOP的概念 AOP(AspectOriented Programming,面向切面编程)指的是可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下个程序动态统一添加功能的一种技术.AOP ...
- C 输入一串数字,去掉当中含7的和能被7整除的数
C 输入一串数字,去掉当中含7的和能被7整除的数,每一个数小于10000,数字个数小于100 输入样例:1,7,56,77,87,2,45,42,97,9977 输出:1,2,45 注意:输入个数不确 ...
- 蓝的成长记——追逐DBA(6): 做事与做人:小技术,大为人
***********************************************声明*************************************************** ...
- <译>Flink编程指南
Flink 的流数据 API 编程指南 Flink 的流数据处理程序是常规的程序 ,通过再流数据上,实现了各种转换 (比如 过滤, 更新中间状态, 定义窗口, 聚合).流数据可以来之多种数据源 (比如 ...