hexo 搭建简约的个人博客并部署到云服务器

使用 hexo 搭建一个简约的个人博客并部署到云服务器上。

https://tea.nim-cn.com/archives/

环境简介

我使用的是 ubuntu 系统,使用的是阿里云的服务器,域名是已经备案的 Nim 中文社区 官网的子域名。

远程连接使用的 xshell 以及 vscode ssh,文件传输使用的是 xftp

Markdwon 写作工具 vscode 以及 typora

博客首页

安装

由于 hexo 是基于 nodejs 的框架,首先,我们需要安装 nodejs 以及包管理器 npm

代码语言:javascript
复制
sudo apt-get update
sudo apt-get install nodejs
sudo apt-get npm

接着,我们就可以使用 npm 安装 hexo

代码语言:javascript
复制
npm install -g hexo

确认安装无误之后,我们新建一个 blog 文件夹(随意命名),然后切换到 blog 文件夹下面。然后使用 hexo init 初始化文件夹。

代码语言:javascript
复制
mkdir blog
cd blog
hexo init

接下来,我们使用 hexo g 来生成文件,hexo s 来运行服务。

代码语言:javascript
复制
hexo g # 生成文件
hexo s # 运行服务

hexo 的默认端口是 4000,我们在浏览器中输入云服务器的 ip 地址加上端口号,就可以预览博客了。

代码语言:javascript
复制
ip地址:4000

我们可以看到,系统默认的主题,以及默认的博客。默认的主题,很可能不满足我们的使用需求。这时候,我们可以下载第三方主题。我下载的是 fexo

我们切换到 blog\themes 文件中,并执行命令 git clone git@github.com:forsigner/fexo.git fexo ,确保自己已经安装了 git

代码语言:javascript
复制
cd themes
git clone git@github.com:forsigner/fexo.git fexo

这时候,我们需要修改 blog/_config.yml ,找到 theme 这个属性,修改往 theme: fexo,需要注意需要使用英文字符冒号,以及冒号与主题之间要有一个空格。

代码语言:javascript
复制
theme: fexo

这时候,我们执行 hexo ghexo s,并访问端口,可以发现主题已经变成了 fexo 的样式。

如果,我们需要添加博客,可以通过 xftp 直接将文章推拽到 blog/source/_posts 这一个文件中,再重新通过 hexo g 生成 html 文件。

样式优化

我们可以调整 blog/themes/fexo/_config.yml 中的配置来满足我们的使用需求。

我主要是删除了一些我不需要的设置。

为了 seo 优化,可以更改关键字等信息

代码语言:javascript
复制
# Site
title: Nim 早茶
subtitle: Nim 语言博客
description: Nim 编程的知识点
keywords: nim ,nim-lang, nim中文, nim中文社区, nim早茶, 编程语言, nim编程语言, 编程, 极客, Python 
author: Nim 中文社区
language: zh-CN
timezone: ''

接下来,我们使用阿里云提供的DNS 解析,将域名绑定到我们的服务器上。由于阿里云默认不提供 4000 端口,我们可以使用 nginx 反向代理。

代码语言:javascript
复制
# 安装 nginx
sudo apt-get install nginx

接下来在 /etc/nginx/sites-available/ 文件夹下面创建一个 域名 的快捷服务,比如说我的域名是 tea.nim-cn.com,我创建的快捷服务就是 tea.nim-cn.com

编辑这个文件,写入以下内容,注意 server_name 需要改成你的域名。

代码语言:javascript
复制
server {
        server_name tea.nim-cn.com;
        autoindex off;
    location / {
            proxy_pass http://localhost:4000;
            proxy_set_header Host $host;
            proxy_set_header X-Real_IP $remote_addr;
    }

}

接下来执行以下命令,凡是出现 tea.nim-cn.com 的字样都需要改成你的域名。

代码语言:javascript
复制
ln -s /etc/nginx/sites-available/tea.nim-cn.com
/etc/nginx/sites-enabled/tea.nim-cn.com

接下来执行 sudo nginx -s reload,反向代理就配置完成了。现在我们可以在浏览器中直接输入域名来访问我们的博客。

最后,为了使得我们的博客在我们退出 ssh 连接之后仍然可以访问,我们可以使用 hexo s & 使得 hexo 在后台运行。

代码语言:javascript
复制
hexo s &

如果要关闭后台进程

代码语言:javascript
复制
kill -s 9 ps -e|grep hexo|awk '{print $1}'

我的个人博客主页,点击阅读原文,访问博客。

https://tea.nim-cn.com/