系统根据https://imququ.com一系列文章和方向进行搭建,期间获得了QuQu的很大帮助,在此表示感谢。
用过其它博客系统,不喜欢,不够轻,不够快!自己做过共两款博客系统,完美主义的我(毕竟处女座)也实在是不想再在这件事情上过多纠结了。Eiblog
应该是一个比较稳定的博客系统,且是博主以后使用的博客系统,稳定性和维护你是不用担心的,唯独该系统部署过程太过复杂,并且不推荐没有计算机知识的朋友搭建,欢迎咨询。该博客的个中优点(明显快,安全),等你体验。
整个博客系统涉及到模块如下:
- 自动更新证书:
- 接入 acme/autocert,在 TLS 层开启全自动更新证书,从此证书的更新再也不用惦记了,不过 Go 的 HTTPS 兼容性不够好(不想兼容),在如部分 IE 和 UC 之类的浏览器不能访问,请悉知。
- 如果你采用如 Nginx 代理,推荐使用 acme.sh 实现证书的自动部署。博主实现 aliyun dns 的自动验证方式,详见 Makefile/gencert。
MongoDB
,博客采用 mongodb 作为存储数据库。Elasticsearch
,采用elasticsearch
作为博客的站内搜索,尽管占用内存稍高。Disqus
,作为博客评论系统,国内大部分被墙,故实现两种评论方式。Nginx
,作为反向代理服务器,并做相关http header
和证书的设置。Google Analytics
,作为博客系统的数据分析统计工具。七牛 CDN
,作为博客系统的静态文件存储,博文的图片附件什么上传至这里。
可以容易的看到 httpsecurityreport 评分96
,ssllabs 评分A+
,myssl 评分A+
,堪称完美。这些安全的相关配置会在后面的部署过程中接触到。
注
:图片1,图片2是博客界面,图片3是后台界面,图片4是内存占用。
eiblog
默认监听 :9000
端口,默认连接 MongoDB
地址 mongodb:27017
,默认连接 Elasticsearch
地址 http://elasticsearch:9200
。
1、手动启动执行
- 到 这里 下载对应平台
.tar.gz
文件。 - 搭建
MongoDB
(必须)和Elasticsearch
(可选)服务,正式部署需要。 MongoDB
服务地址也可通过环境变量指定连接地址如:export EIBLOG_MGO_ADDR=127.0.0.1:27017
。- 执行
./eiblog
,运行博客系统。看到...Listening and serving HTTP on :9000
代表运行成功了。
默认监听 HTTP 9000
端口,后台 /admin/login
,默认账号密码均为 deepzz
。更多详细请查阅 安装部署 文档。
2、Docker 与 Go 环境
如果你有 docker
和 go
环境,可直接使用如下命令启动:
$ EIBLOG_MGO_ADDR=127.0.0.1:27017 make run
请提前指定 mongodb
的连接地址。该命令会启动一个 mognodb
容器,然后编译 eiblog
并运行。
作为博主之心血之作,Eiblog
实现了什么功能,有什么特点,做了什么优化呢?
- 系统目前只有
首页
、专题
、归档
、友链
、关于
、搜索
界面。相信已经可以满足大部分用户的需求。 .js
、.css
等静态文件本地存储,小图片 base64 内置到 css 中,不会产生网络所带来的延迟,加速网页访问。版本控制方式,动态更新静态文件。- 采用谷歌统计,并实现异步(将访问信息发给后端,后端提交给谷歌)统计,加速访问速度。
- 采用直接缓存 markdown 转过的 html 文档的方式,加速后端处理。响应速度均在 3ms 以内,真正极速。
- 通过 Nginx 的配置,开启压缩缩小传输量,服务器传输证书链、开启
Session Resumption
、Session Ticket
、OCSP Stapling
等加速证书握手,再次提高速度。
CDN
,使用七牛融合CDN,并https
化,实现全站https
。七牛可申请免费证书了。CT
,证书透明度检测,提供一个开放的审计和监控系统。可以让任何域名所有者或者 CA 确定证书是否被错误签发或者被恶意使用,从而提高 HTTPS 网站的安全性。OSCP
,在线证书状态协议。用来检验证书合法性的在线查询服务.HSTS
,强制客户端(如浏览器)使用 HTTPS 与服务器创建连接。可以很好的解决 HTTPS 降级攻击。 *HPKP
,HTTP 公钥固定扩展,防范由「伪造或不正当手段获得网站证书」造成的中间人攻击。该功能让我们选择信任哪些CA
。请不要轻易尝试 Nginx 线上运行,因为该配置目前只指定了 Letsencrypt X3 和 TrustAsia G5 证书 pin-sha256。 *SSL Protocols
,罗列支持的TLS
协议,SSLv3 被证实是不安全的。SSL dhparam
,迪菲赫尔曼密钥交换。Cipher suite
,罗列服务器支持加密套件。
- 文章评论数量(不重要)后端跑定时脚本,定时更新,所以有时评论数是不对的。这样减少了 api 调用,又再次达到加速访问的目的。
- 针对
disqus
被墙原因,实现 Jerry Qu 的另类评论方式,保证评论的流畅。 - 开源
Typecho
完整后台系统,全功能markdown
编辑器,让你体验什么是简洁清爽。 - 博客后台直接对接
七牛 SDK
,实现后台上传文件和删除文件的简单功能。 - 采用
Elasticsearch
作为站内搜索,结合google opensearch
功能,搜索更加自然。 - 自动备份数据库数据到七牛云。
- https://blog.netcj.com - Razeen's Blog
如果你的博客使用Eiblog
搭建,你可以在 这里 提交网址。