应朋友要求,记录下HEXO+NGINX部署

HEXO介绍

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。

Nginx介绍

Nginx (读“engine x”)是一款免费、开源、高性能的HTTP服务器。
Nginx 因性能稳定、功能丰富、配置简单、资源消耗低而著称。

环境配置

本次采用的环境:
Centos 7
Node.js 8.9.4

Nginx部署

参考博客的:Nginx部署

Hexo部署

下载安装最新的node.js

wget https://nodejs.org/dist/v8.9.4/node-v8.9.4.tar.gz

解压并重命名

tar xvf node-v8.9.4.tar.gz && mv node-v8.9.4 node

安装node.js

进入目录

[root@www ~]# cd node
[root@www node]# ls
AUTHORS BUILDING.md CODE_OF_CONDUCT.md CONTRIBUTING.md GOVERNANCE.md Makefile android-configure common.gypi deps lib node.gypi test vcbuild.bat
BSDmakefile CHANGELOG.md COLLABORATOR_GUIDE.md CPP_STYLE_GUIDE.md LICENSE README.md benchmark configure doc node.gyp src tools

编译安装

这一步耗时较长,可以泡杯咖啡

[root@www node]# ./configure --prefix=/usr/local/node/8.9.4 && make && make install

配置NODE_HOME,进入profile编辑环境变量

vi /etc/profile
设置nodejs环境变量,在export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL一行的上面添加如下内容:

#set for nodejs
export NODE_HOME=/usr/local/node/8.9.4
export PATH=$NODE_HOME/bin:$PATH

:wq保存并退出,编译/etc/profile使配置生效
source /etc/profile
验证是否安装配置成功

node -v

[root@www node]# node -v
v8.9.4

npm模块安装路径
/usr/local/node/8.9.4/lib/node_modules/

注:Nodejs 官网提供了编译好的Linux二进制包,你也可以下载下来直接应用。

下载hexo

[root@www ~]# npm install -g hexo-cli

初始化HEXO

/home/wwwroot/domain目录下初始化hexo博客,也可以是任意你想要的名字
[root@www domain]# hexo init /home/wwwroot/domain
进入博客根目录,并且安装相关插件依赖等
[root@www domain]cd /home/wwwroot/domain/blog
[root@www blog]# npm install
安装完成后需要用一下命令
[root@www blog] hexo g -d

Nginx配置

Nginx部署
在虚拟主机配置的目录新建个blog.conf内容如下

server
{
listen 80;
listen [::]:80;
#listen 443 spdy;
#listen [::]:443 spdy;
server_name blog.example.com;
index index.html index.php;
set $subdomain '';
root /home/wwwroot/domain/blog/public$subdomain;
#include /home/wwwroot/rewrite/xxx.conf;

### SSL 配置
#ssl on;
#ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
#ssl_ciphers CHACHA20:GCM:CFB:HIGH:!DH:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS;
#add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload";
#ssl_prefer_server_ciphers on;
#ssl_stapling on;
#ssl_stapling_verify on;
#ssl_certificate /path/to/public.crt;
#ssl_certificate_key /path/to/private.key;
############
#location ~ .*.php(/.*)*$
#{
# fastcgi_pass unix:/tmp/php-cgi-www.example.com.sock;
# fastcgi_index index.php;
# include fastcgi.conf;
# #fastcgi_param HTTPS $https if_not_empty;
# fastcgi_param DOCUMENT_ROOT /home/wwwroot/domain/www.w3bsafe.cn$subdomain;
# fastcgi_param SCRIPT_FILENAME /home/wwwroot/domain/www.w3bsafe.cn$subdomain$fastcgi_script_name;
#}
location ~ .*.(gif|jpg|jpeg|png|bmp|swf|flv|mp3|wma)$
{
expires 30d;
}
location ~ .*.(js|css)$
{
expires 12h;
}
access_log off;
error_log /dev/null;
}

然后重启nginx,访问你的域名即可