主要讲解了如何在远程机器用Nginx上部署本地的搭建博客

之前的博客是用github pages部署的,那时候刚接触这些东西,按照网上的教程按部就班地撸了一个博客。自从工作以后,博客就停了,决定重拾回来,还是觉得要保持一颗持续技术输出的心。

环境

本地环境:macOS 10.14.5
远程环境:Ubuntu 16.04.6
hexo: 3.8.0
node: 8.12.0
nginx: 1.10.3(Ubuntu)

本地

涉及hexo的安装、创建博客、配置文件

hexo安装

参考:hexo官方文档

全局安装hexo

npm install -g hexo-cli

hexo建博客

hexo init <my_blog>
cd <my_blog>
npm install

安装hexo部署模块hexo-deployer-rsync

cd <my_blog>
npm install hexo-deployer-rsync --save

修改配置文件

打开<my_blog>根目录下的配置文件_config.yml

vim _config.yml

修改配置

deploy:
type: rsync
host: <host>
user: <user>
root: <root>
port: [port]
delete: [true|false]
verbose: [true|false]
ignore_errors: [true|false]
参数 描述 默认值
host 远程主机地址 如:101.xxx.xxx.117
user 用户名 如:root
root 远程主机目录 如:/home/www/hexo
port 远程主机端口 22 (ssh协议默认端口)
delete 删除远程机器上的旧文件 true
verbose 显示调试信息 true
ignore_errors 忽略错误 false

_config.yml中依次填写相应信息

注意点

  • 本地机器能够通过ssh连接远程主机
  • 用户名是连接到远程主机的用户
  • port一般不需要改动

部署到远程机器

<my_blog>根目录下运行

hexo deploy

远程

在远程主机上需要安装nginx, 修改nginx的配置文件,运行nginx

安装nginx

ubuntu安装命令

apt-get install -y nginx

centos安装命令

yum install -y nginx

测试nginx

安装完成之后测试一下nginx是否安装成功
在bash中输入nginx启动nginx服务

curl localhost

出现以下内容,表示nginx服务正常启动

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Test Page for the Nginx HTTP Server on Fedora</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
...

或者直接在浏览器中输入远程主机的IP地址,出现Welcome to nginx...等字段也表示nginx服务成功启动

修改nginx配置文件

配置文件的位置一般在/etc/nginx/nginx.conf

vim /etc/nginx/nginx.conf

注意点

  • 在文件中的http中修改server
  • 注释掉默认的配置文件语句
  • server中的root是本地推送到远程机器的目录
  • server_name是域名地址
http {
...
server {
listen 80;
listen [::]:80;
server_name _;
root /home/www/hexo;
index index.html;

location / {
}
}
}

修改完配置文件后保存退出,检测一下配置文件是否正确

nginx -t

输出如下内容表示配置文件编写正确,否则再检查一下配置文件(根据打印出来的报错信息去查看)

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

重启nginx服务

systemctl restart nginx.service
或者
nginx -s reload

查看博客

在浏览器中输入远程机器的IP地址,如果看到变成了博客页面,大功告成啦!