现在我们需要把静态文件上传到公网上,让所有人都能访问

打开_config.yml,拉到最底下,找到# Deployment那一块,现在我们需要配置这里

按照官方文档有很多种方法,一般情况下只用得着两种:SFTPGit

SFTP推送至个人服务器是付费方案,Git推送至GitHub是免费方案

法一:SFTP

租过个人服务器的都是有Linux经验的,这里我就简单点说

安装Web服务器

一般用Nginx或者Apache就行,这里以Nginx为例

1
2
sudo apt update
sudo apt install nginx

配置本地文件

先安装hexo-deployer-sftp依赖

1
npm install hexo-deployer-sftp --save

查阅官方文档来配置:

1
2
3
4
5
6
7
8
9
10
deploy:
type: sftp
host: <host>
user: <user>
pass: <password>
remotePath: [remote path]
port: [port]
privateKey: [path/to/privateKey]
passphrase: [passphrase]
agent: [path/to/agent/socket]
参数 描述 默认值
host 远程主机的地址
user 使用者名称
pass 密码
remotePath 远程主机的根目录 /
port 端口 22
privateKey ssh私钥的目录地址
passphrase (可省略)ssh私钥的密码短语
agent ssh套接字的目录地址 $SSH_AUTH_SOCK

如果是用私钥的我就不说了,如果是只用账户和密码的需要注意下,密码是需要用双引号括起来的,否则无法部署

例:

1
2
3
4
5
6
7
deploy:
type: sftp
host: xxx.xxx.xxx.xxx
user: root
pass: "yourpassword"
remotePath: /var/www/html
port: 22

保存好之后,执行下面的命令,看看能不能成功部署

1
2
3
hexo clean
hexo generate
hexo deploy

法二:GitHub Pages

首先安装 git

前往 git 官网 下载并安装git,或者使用 网盘链接

注册 GitHub 账号并创建个人仓库

由于众所周知的原因,建议使用魔法上网

登录 https://github.com 注册账号,点击右上角的加号->New repository来新建仓库

仓库名称为你的用户名.github.io,如NOTSPROG.github.io,下方的Add a README file记得勾上

生成 SSH 密钥

CMD中使用ssh-keygen生成密钥

1
ssh-keygen

然后根据提示一路填下去就行

之后打开你的用户目录,进入里面的.ssh文件夹,会发现有id_rsa(私钥)和id_rsa.pub(公钥)两个文件

将公钥添加到 GitHub

打开GitHub,点击右上角头像->Setting->左侧 SSH and GPG keys->New SSH key,或者点击此链接

用记事本打开id_rsa.pub,把里面的内容复制进去,然后随便取一个title

配置本地文件并部署

首先安装依赖

1
npm install hexo-deployer-git --save

然后修改_config.ymlrepository就填你的仓库地址,分支选择main

例:

1
2
3
4
deploy:
type: git
repository: https://github.com/NOTSPROG/NOTSPROG.github.io
branch: main

保存好之后,执行下面的命令,看看能不能成功部署

1
2
3
hexo clean
hexo generate
hexo deploy

每次在本地推送完后,还要等待GitHub反应过来部署到他家的服务器上

完成之后在浏览器中访问你的用户名.github.io,看看能不能看见你的网页(当然,我这里已经配置了butterfly主题)

前车之鉴
  • 部署至GitHub不能太过频繁,否则会造成443错误并被锁定一段时间

  • 尽量不要挂着梯子部署,不然会有以下错误

配置自定义域名(可选)

如果你觉得你的用户名.github.io这个用户名不够高级,那么你可以自己去阿里云腾讯云之类的地方租一个域名

当然,这是要花钱的,不过廉价的域名也还算便宜,我的域名花了大概200块就租了10年

打开解析域名的界面,添加CNAME记录,全部指向你的GitHub Pages域名

然后打开你的Github仓库->Settings->Pges,在下方的Custom domain填上你的域名并保存

之后你会发现根目录下有一个CNAME文件,内容是你的域名

但是当你在本地hexo d的时候,Github上的CNAME就会消失(因为你本地没有这个文件)

所以我们在本地也需要创建一个CNAME

再生成、部署一次,CNAME应该还是在的

1
hexo g && hexo d

Github的反应完之后,用的就是你的自定义域名了

安装 SSL 证书

没有安装SSL证书时,你的网站使用的是HTTP协议,连接没有加密,会显示为不安全

而安装了SSL证书之后,网站使用的就是HTTPS协议,连接会被加密,图标会变成一把锁

我之前嫌麻烦,一直懒得配置SSL证书~~(又不是不能用)~~

但是每当同学看我的博客的时候,都会有人问我:

“你这博客为什么不安全啊?”

我晕…每次都要解释一句,这是连接不安全,又不是我的网站不安全

但是最后为了面子还是去弄了一个,总结教程如下:

  • 使用个人站点的话请移步『Linux』Nginx 配置 SSL 证书

  • 如果是Github Page的话,勾选下面的Enforce HTTPS 就可以了,GitHub过一会儿会给你弄好的

添加你的网站地址

部署到个人站点或者Github Pages后,就可以在_config.yml中正大光明地写上你的网站地址了

下一篇,将讲述如何配置并美化butterfly主题