将hexo配置到个人服务器 nginx配置https
hexo配置到github国内访问不用梯子上不去,一直想把博客放到自己的服务器上,这样baidu也可以收录。接下来介绍一下配置过程。
环境
云服务器 ubuntu20.04
本地主机装好hexo(不会的可以看下我之前关于hexo的文章)
将hexo配置到个人服务器
安装git和nginx
以下操作建立在 root
权限之下,如权限不足请申请 root
权限或采用 sudo
关键字。
apt-get update |
安装完成后新建一个文件路径来存放我们的git仓库并初始化仓库:
mkdir /var/repo/ |
配置 Nginx 托管文件目录
创建一个新的www目录(如果想使用默认的可以跳过这一小节)
mkdir -p /var/www/hexo |
修改 Nginx 的 default 文件使得 root 指向刚刚创建的 /var/www/hexo目录:
vim /etc/nginx/sites-available/default |
重启nginx服务:
service nginx restart |
配置完成。
tips:可以自己随便写个网页放到这个目录,ip访问一下服务器看看配置成功没有。
Git勾子(hooks)
我们的hexo文件传到服务器的git后,需要同步传到nginx的托管目录下。这样访问网站时才会有hexo的内容,这就需要使用git hooks。
执行下面的命令,在自动生成的{自定义仓库名name}.git/hooks
目录下创建一个新的钩子文件:
vim /var/repo/{自定义仓库名name}.git/hooks/post-receive |
tips:注意这是要新建一个文件,而不是用
post-update.sample
这个文件。我踩了粗心大意的坑
打开文件后,加入下面的代码:
#!/bin/bash |
将文件保存后,赋予该文件可执行权限:
chmod +x /var/repo/{自定义仓库名name}.git/hooks/post-receive |
使用Git部署本地Hexo到远端
将服务器地址添加到受信任的站点,在本地任意目录从服务器上把hexo_static仓库克隆下来:
git clone root@{云服务器IP}:/var/repo/ganahBlog.git |
tips: 如果你在远端服务器创建了 Git 用户并设定为拥有者,请将 root 改成 git (git用户)。
编辑本地hexo工作目录中的_config.yml
,将url
改成https://{云服务器IP或域名}/
将 deploy 目标改为 {服务器用户名}@{服务IP}:/var/repo/{自定义仓库名name}.git:
在个人博客站点目录下,打开 Git bash
,使用 hexo clean && hexo g -d
部署
这里如果不想每次都输密码,可以将本地的
id_rsa.pub
文件写入服务器用户家目录的.ssh文件夹中
具体操作参考:https://blog.csdn.net/jewely/article/details/104743806/(ssh密钥的生成和配置部分)
至此,可使用IP地址访问博客。
nginx配置https
获取证书文件
自己去域名商那里申请一个nginx的证书文件(或者自己openssl签发),一般是如下几个:
callmelp.online.csr |
我们需要用的是.crt和.key文件
域名解析
在域名商那边把域名解析到自己服务器的ip地址
配置nginx
添加https站点:修改 /etc/nginx/sites-enabled/default
站点的配置文件(记得自己先备份):
server { |
参考
将hexo个人博客部署到个人云服务器https://zhuanlan.zhihu.com/p/120743882
Ubuntu下nginx服务器开启https的方法https://cloud.tencent.com/developer/article/1456497
https://blog.csdn.net/jewely/article/details/104743806/