痛点
很多时候,我们写的部分博客和文章是不希望别人看到的(比如一些个人的总结之类),所以对这些文章进行加密,提供密码才能访问是个不错的方式。下面会介绍两种不同的实现方式:
- Nginx授权访问;
- Hexo-Blog-Encrypt;
Nginx授权访问
前置条件:你的Hexo博客搭在Nginx服务器;
- 安装htpasswd插件:
sudo apt-get install apache2-utils
- 创建密码文件,密码文件的路径
path
可自定义,但要与之后的Nginx配置中保持一致,
sudo htpasswd -c /path/htpasswd username
New password:
Re-type new password:
Adding password for user username
- 配置Nginx服务器:
特定访问目录加密处理,location后面的路径是你想要加密的文件或文件夹的路径,具体可通过你Hexo生成的public文件夹查找。
server{
listen 80;
server_name www.oneonecity.com www.oneonecity.cn;
root /var/www/blog/public;
index index.html ;
charset utf-8;
access_log logs/access.log;
error_log logs/error.log;
location /webHook {
proxy_pass http://127.0.0.1:7777;
}
# 特定访问目录加密处理,location后面的路径是你想要加密的文件或文件夹的路径,具体可通过你Hexo生成的public文件夹查找:
location ^~/1991/08/07/{
auth_basic "Please input your name and passeord:";
auth_basic_user_file /path/htpasswd;
}
}
}
重新载入Nginx配置文件使之生效:
sudo service nginx reload
访问加密文件进行验证。
Hexo-Blog-Encrypt
以下内容来自该插件的中文说明文档,详见github。
安装
在 hexo 根目录的 package.json 中添加 "hexo-blog-encrypt": "1.1.*"
依赖。
然后执行npm install
命令。
该插件会自动安装
快速开始
- 首先在
_config.yml
中启用该插件:
# Security
##
encrypt:
enable: true
- 在你的文章的头部添加上对应的字段,如
password
,abstract
,message
---
title: hello world
date: 2016-03-30 21:18:02
tags:
- fdsafsdaf
password: Mike
abstract: Welcome to my blog, enter password to read.
message: Welcome to my blog, enter password to read.
---
其他
除了以上两种之外还有一种方法,比较简单,是通过弹窗阻止页面渲染的方法实现,但是比较容易破解,感兴趣的朋友可以了解下,传送门