使用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 是不允许备案 ...
随机推荐
- springBoot单元测试-基础单元测试
1)在pom文件中加入junit支持 <!-- spring-boot-starter-test 单元测试 --> <dependency> <groupId>or ...
- 如何破解linux用户帐号密码一
ENCRYPT_METHOD SHA512 定义帐号密码的加密方式 1.第一步拿到散列,也就是加密后的密码hash值 2.可以去一些彩虹表(rainbow)网站查询这些hash对应的密码明文,稍微花些 ...
- flask restful修改头部信息
有两种方式,第一种是使用make_response from flask import make_response def test(): resp = make_response('test', c ...
- .NET MVC之ActionResult
.NET MVC之ActionResult ActionResult是所有Controler返回值的父类.各种结果都是由ActionResult包装后发往客户端的. 继承结构 System.Objec ...
- Android OpenGL加入光照和材料属性
转载请注明出处:[huachao1001的专栏:http://blog.csdn.net/huachao1001] 在上一篇文章[ Android OpenGL显示随意3D模型文件 ]中.我们学习了怎 ...
- Maven仓库设置代理
线上服务器是没有外网环境的, 添加代理配置如下: <settings> ... <proxies> <proxy> &l ...
- centos6.8服务器配置之SVN配置
version 1.6.11 一.安装:因对版本要求不高,所以采用yum安装 yum install -y svn 二.配置 1.创建仓库,以后所有代码都放在这个下面,创建成功后在svn下面多了几个文 ...
- ElasticSearch位置搜索
ElasticSearch位置搜索 学习了:https://blog.csdn.net/bingduanlbd/article/details/52253542 学习了:https://blog.cs ...
- Python strings, 元组tuples, 和numbers是不可更改的对象,而list,dict等则是可以修改的
在python中,strings, 元组tuples, 和numbers是不可更改的对象,而list,dict等则是可以修改的对象. a = 1 def fun(a): a = 2 fun(a ...
- HTML5学习笔记简明版(5):input的type超级类型
HTML5为input的type类型添加了多种枚举值,用来表达不同的意思.同事具有验证功能,假设格式不正确,浏览器将原始提供错误提示,堪称超级牛X啊,详细例如以下: Keyword Data type ...