Eiblog 初体验,搭建教程

发布时间:2020-06-21 21:58:06 作者:chenqijing2
来源:网络 阅读:416

用过其它博客系统,不喜欢,不够轻,不够快!自己做过共两款博客系统,完美主义的我(毕竟×××座)也实在是不想再在这件事情上过多纠结了。Eiblog 应该是一个比较稳定的博客系统,且是博主以后使用的博客系统,稳定性和维护你是不用担心的,唯独该系统部署过程太过复杂,并且不推荐没有计算机知识的朋友搭建,欢迎咨询。该博客的个中优点(明显快,安全),等你体验。

介绍

整个博客系统涉及到模块如下:

相关技术有:

作为博主之心血之作,Eiblog实现了什么功能,有什么特点,做了什么优化呢?

  1. 系统目前只有首页专题归档友链关于搜索界面。相信已经可以满足大部分用户的需求。

  2. .js.css等静态文件本地存储,小图片 base64 内置到 css 中,不会产生网络所带来的延迟,加速网页访问。版本控制方式,动态更新静态文件。

  3. 采用谷歌统计,并实现异步(将访问信息发给后端,后端提交给谷歌)统计,加速访问速度。

  4. 采用直接缓存 markdown 转过的 html 文档的方式,加速后端处理。响应速度均在 3ms 以内,真正极速。

  5. 特定格式[ ![alt](https://st.deepzz.com/static/img/avatar.jpg =256x256) ]图片懒加载策略,加快访问速度。

  6. 通过 Nginx 的配置,开启压缩缩小传输量,服务器传输证书链、开启Session ResumptionSession TicketOCSP Stapling等加速证书握手,再次提高速度。

  7. 文章评论数量(不重要)后端跑定时脚本,定时更新,所以有时评论数是不对的。这样减少了 api 调用,又再次达到加速访问的目的。

  8. 针对disqus被墙原因,实现Jerry Qu的另类评论方式,保证评论的流畅。

  9. 开源Typecho完整后台系统,全功能markdown编辑器,让你体验什么是简洁清爽。

  10. 博客后台直接对接七牛 SDK,实现后台上传文件和删除文件的简单功能。

  11. 采用elasticsearch作为站内搜索,添加google opensearch功能,搜索更加自然。

当然,在信息安全方面也没少下功夫,虽然我们只是一个小小的博客系统。

  1. CDN,使用七牛融合CDN,并https化,实现全站https。七牛可申请免费证书了。

  2. CT,证书透明度检测,提供一个开放的审计和监控系统。可以让任何域名所有者或者 CA 确定证书是否被错误签发或者被恶意使用,从而提高 HTTPS 网站的安全性。

  3. OCSP,在线证书状态协议。用来检验证书合法性的在线查询服务.

  4. HSTS,强制客户端(如浏览器)使用 HTTPS 与服务器创建连接。可以很好的解决 HTTPS 降级***。

  5. HPKP,HTTP公钥固定扩展,防范由「伪造或不正当手段获得网站证书」造成的中间人***。该功能让我们选择信任哪些CA

  6. SSL Protocols,罗列支持的TLS协议,SSLv3被证实是不安全的。

  7. SSL dhparam,迪菲赫尔曼密钥交换。

  8. Cipher suite,罗列服务器支持加密套件。

可以容易的看到httpsecurityreport评分96,ssllabs评分A+,堪称完美。这些安全的相关配置会在后面的部署过程中接触到。

相关图片展示:Eiblog 初体验,搭建教程

Eiblog 初体验,搭建教程

Eiblog 初体验,搭建教程

Eiblog 初体验,搭建教程

:图片1,图片2是博客界面,图片3是后台界面,图片4是性能展示。

好了,说了那么多,吹了那么多,我们实际来动手搭建一个Eiblog吧。

安装

1、Eiblog提供多个平台的压缩包下载,可到Eiblog release选择相应版本和平台下载。也可通过:

$ curl -L https://github.com/eiblog/eiblog/releases/download/v0.1.0/eiblog-v0.1.0.`uname -s | tr '[A-Z]' '[a-z]'`-amd64.tar.gz > eiblog-v0.1.0.`uname -s | tr '[A-Z]' '[a-z]'`-amd64.tar.gz

2、如果有幸你也是Gopher,相信你会亲自动手,你可以通过:

$ go get https://github.com/eiblog/eiblog

进行源码编译二进制文件运行。

3、如果你对docker技术也有研究的话,你也可以通过docker来安装:

$ docker pull registry.cn-hangzhou.aliyuncs.com/deepzz/eiblog

镜像内部只提供了eiblog的二进制文件,因为其它内容定制化的需求过高。所以需要将confstaticviews目录映射出来,后面会具体说到。

本地测试

在我们下载好可执行程序之后,我们可以开始本地测试的工作了。

本地测试需要搭建两个服务mongodbelasticsearch3.4.1(可选,搜索服务不可用)。

Eiblog默认会连接hostnameeidbeisearch,因此你需要将信息填入/etc/hosts下。假如你搭建的mongodb地址为127.0.0.1:27017elasticsearch地址为192.168.99.100:9200,如:

SH$ sudo vi /etc/hosts# 在末尾加上两行127.0.0.1       eidb
192.168.99.100  eisearch
MongoDB 搭建

1、MongoDB搭建,Mac 可通过brew install mongo进行安装,其它平台请查询资料。

Elasticsearch 搭建

2、Elasticsearch搭建,它的搭建要些许复杂。博主尚未接触如何直接安装,因此建议通过docker搭建。需要注意的是 es 自带的分析器对中文分词是不友好的,这里采用了elasticsearch-analysis-ik分词器。如果你想了解更多Github或则实现博客站内搜索。

  conf/es/config:/usr/share/elasticsearch/config  conf/es/plugins:/usr/share/elasticsearch/plugins  conf/es/data:/usr/share/elasticsearch/data  conf/es/logs:/usr/share/elasticsearch/logs

如果你想查看详细,请查看docker-compose.yml文件。

总结一下,docker运行 es 的命令为:

SH$ docker run -d --name eisearch \
    -p 9200:9200 \    -e ES_JAVA_OPTS: "-Xms512m -Xmx512m" \
    -v conf/es/config:/usr/share/elasticsearch/config \
    -v conf/es/plugins:/usr/share/elasticsearch/plugins \
    -v conf/es/data:/usr/share/elasticsearch/data \
    -v conf/es/logs:/usr/share/elasticsearch/logs \
    elasticsearch:2.4.1

之后执行./eiblog,咱们的eiblog就可以运行起来了。

通过127.0.0.1:9000可以进入博客首页,127.0.0.1:9000/admin/login进入后台登陆,账号密码为eiblog/conf/app.yml下的usernamepassword。也就是初始账号密码deepzdeepzz

准备部署

如果你在感受了该博客的魅力了之后,仍然坚持想要搭建它。那么,恭喜你,获得的一款不想再更换的博客系统。下面,我们跟随步骤对部署流程进一步说明。

这里只提供Docker的相关部署说明。你如果需要其它方式部署,请参考该方式。

前提准备

这里需要准备一些必要的东西,如果你已准备好。请跳过。

当这些已经准备好了,请参照conf/app.yml中的说明更改配置。

是不是这么多要求,很费解。其实当初该博客系统只是为给人而设计的,是自己心中想要的那一款。博主些这篇文章不是想要多少人来用该博客,而是希望对那些追求至极的朋友说:你需要这款博客系统。

文件准备

尽管大多数文件已经准备好。但有些默认的文件需要特别指出来,需要你在 CDN 上写特殊的路径。

假如你的 CDN 域名为st.example.com,那么:

注意:本人 CDN 做了防盗链处理,故请将这些资源上传至您的 CDN ,以免静态资源不能访问,请悉知。

配置说明

走到这里,我相信只走到60%的路程。放弃还来得及。

这里会对eiblog/conf下的所有文件做说明,希望你做好准备。

├── app.yml                         # 博客配置文件
├── blackip.yml                     # 博客ip黑名单
├── es                              # elasticsearch配置
│   ├── config                      # 配置文件
│   │   ├── analysis                # 同义词
│   │   ├── elasticsearch.yml       # 具体配置
│   │   ├── logging.yml             # 日志配置
│   │   └── scripts                 # 脚本文件夹
│   └── plugins                     # 插件文件夹
│       └── ik1.10.1                # ik分词器
├── nginx                           # nginx配置
│   ├── domain                      # 域名配置,nginx会读区改文件夹下的.conf文件
│   │   └── deepzz.conf│   ├── ip.blacklist                # nginx ip黑名单
│   └── nginx.conf                  # nginx配置,请替换原有配置
├── scts                            # ct文件
│   ├── aviator.sct│   └── digicert.sct├── ssl                             # 证书文件,具体请看deepzz.conf│   ├── dhparams.pem│   ├── domain.key│   ├── domain.pem│   ├── full_chained.pem│   └── session_ticket.key└── tpl                             # 模版文件
    ├── feedTpl.xml
    ├── opensearchTpl.xml
    └── sitemapTpl.xml

1、app.yml,整个程序的配置文件,里面已经列出了所有配置项的说明,这里不再阐述。
2、blackip.yml,如果没有使用Nginx,博客内置ip过滤系统。 3、es全名elasticsearch,非常强大的分布式搜索引擎,github用的就是它。里面的配置基本不用修改,但es/analysis/synonym.txt是同义词,你可以照着已有的随意增加。

├── es
│   ├── config
│   │   ├── analysis
│   │   │   └── synonym.txt                 #同义词配置│   │   ├── elasticsearch.yml               #分词器配置│   │   ├── logging.yml                     #日志配置│   │   └── scripts                         #脚本│   └── plugins                             #中文分词插件│       └── ik1.10.0
│

注意,scripts文件夹虽然是空的,但必需存在,不然elasticsearch报错。

4、nginx,系统采用nginx作为代理(相信博客系统也不会独占一台服务器~)。请使用nginx.conf替换原nginx的配置。博客系统的配置文件是domain/deepzz.conf,或则重命名(只要是满足*.conf)。deepzz.conf文件里面学问是最多的。或许你想一一弄懂,或许…。

注意本配置需要更新nginx到最新版,openssl更新到1.0.2j,具体请到Jerry Qu的本博客 Nginx 配置之完整篇查看,了解详情。

5、scts,存放 ct 文件。

6、ssl,这里存放了所有证书相关的内容。

├── dhparams.pem                #参见eiblog/conf/nginx/domain/deepzz.conf├── domain.key                  #证书私钥,一般颁发者处下载
├── domain.pem                  #证书链,一般从证书颁发者那可以直接下载到
├── full_chained.pem            #参见eiblog/conf/nginx/domain/deepzz.conf└── session_ticket.key          #参见eiblog/conf/nginx/domain/deepzz.conf

7、tpl模版相关,不用修改。

开始部署

docker

请确定你已经完成了上面所说的所有步骤,在本地已经测试成功。服务器上MognoDBElasticsearch已经安装并已经运行成功。

首先,请将本地测试好的confstaticviews文件夹上传至服务器,建议存储到服务器/data/eiblog下。

注意conf/es/config/scripts空文件夹是否存在

SH$ tree /data/eiblog -L 1

├── conf
├── static
├── views

然后,将镜像 PULL 到服务器本地。

# PULL下Eiblog镜像$ docker pull registry.cn-hangzhou.aliyuncs.com/deepzz/eiblog

最后,执行docker run命令,希望你能成功。

SH$ docker run -d --name eiblog --restart=always \
    --add-host disqus.com:23.235.33.134 \
    --link eidb --link eisearch \
    -p 9000:9000 \    -e GODEBUG=netdns=cgo \
    -v /data/eiblog/logdata:/eiblog/logdata \
    -v /data/eiblog/conf:/eiblog/conf \
    -v /data/eiblog/static:/eiblog/static \
    -v /data/eiblog/views:/eiblog/views \
    registry.cn-hangzhou.aliyuncs.com/deepzz/eiblog

这里默认MongDBElasticsearch均为docker部署,且名称为eidbeisearch

nginx + docker

通过Nginx+docker部署,是博主推荐的方式。这里采用Docker Compose管理我们整个博客系统。

请确认你已经成功安装好Nginxdockerdocker-compose。Nginx 请一定参照 Jerry Qu 的Nginx 配置完整篇。

首先,请将本地测试好的confstaticviewsdocker-compose.yml文件夹和文件上传至服务器。前三个文件夹建议存储到服务器/data/eiblog下,docker-compose.yml存放在你使用方便的地方。

注意conf/es/config/scripts空文件夹是否存在

SH$ tree /data/eiblog -L 1

├── conf
├── static
├── views

$ ls ~/

docker-compose.yml

然后,执行:

$ cd ~
$ docker-compose up -d

等待些许时间,成功运行。


推荐阅读:
  1. elastic ik中文分词测试
  2. 异构计算的“备胎上位记”

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

eiblog 简约博客系统 og

上一篇:LAMP之Centos6.5安装配置Apache(一)

下一篇:VC++线程同步(四) 事件使用例子

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》