使用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 是不允许备案 ...
随机推荐
- mormot日志
mormot日志 usesSynLog; if log = nil then // 日志 begin log := TSynLog.Add; log.Family.DestinationPath := ...
- memcached与redis区别
redis:redis是一个高级的key-value的nosql,它主要是用作存储,这是因为它具有持久化功能,并且它支持很多种的数据类型操作,例如,字符串list,set,zset,hash等数据结构 ...
- __argc和__argv变量
微软提供了全局变量__argc 和__argv.这两个变量由Windows在运行时自动赋值.其中__argv有ASCII和Unicode版本,分别为__argv和 __wargv.要使用这两个全局变量 ...
- Java递归删除文件目录的方法
public static void delDir(String path){ File dir=new File(path); if(dir.exists()){ File[] tmp=dir.li ...
- 二、spring-boot文件配置
项目文件结构,新建的Springboot项目的文件结构如下: |-customer(项目名称) | - sec | | - main | | | - java | | | - resources | ...
- iOS: 适配启动图和图标
如何设置App的启动图,也就是Launch Image? Step1 1.点击Assets.xcassets 进入图片管理,然后右击,弹出"App Icons & Launch Im ...
- 流畅的python第十二章继承的优缺点学习记录
子类化内置类型的缺点 多重集成和方法解析顺序 tkinter
- 两张表的笛卡尔积用sql语句
第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小SELECT * FROM table1 CROSS JOIN table2
- maven工程小红叉处理方法
搞了个Maven工程在Eclipse上,刚开始说JDK版本不对,编译的时候老报错误,很容易搞明白, 本地JDK版本为1.7.0_79: diamond operator is not supporte ...
- SVN-项目 XXX 受源代码管理。向源代码管理注册此项目时出错。建议不要对此项目进行任何修改
错误描述: 项目 XXX 受源代码管理.向源代码管理注册此项目时出错.建议不要对此项目进行任何修改 解决办法: 使用记事本打开,项目csproj文件删除图中几行,重新打开解决方案就可以了 原因分析: ...