将hexo配置到个人服务器 nginx配置https
hexo配置到github国内访问不用梯子上不去,一直想把博客放到自己的服务器上,这样baidu也可以收录。接下来介绍一下配置过程。
环境
云服务器 ubuntu20.04
本地主机装好hexo(不会的可以看下我之前关于hexo的文章)
将hexo配置到个人服务器
安装git和nginx
以下操作建立在 root 权限之下,如权限不足请申请 root 权限或采用 sudo 关键字。
1 | apt-get update |
安装完成后新建一个文件路径来存放我们的git仓库并初始化仓库:
1 | mkdir /var/repo/ |
配置 Nginx 托管文件目录
创建一个新的www目录(如果想使用默认的可以跳过这一小节)
1 | mkdir -p /var/www/hexo |
修改 Nginx 的 default 文件使得 root 指向刚刚创建的 /var/www/hexo目录:
1 | vim /etc/nginx/sites-available/default |
重启nginx服务:
1 | service nginx restart |
配置完成。
tips:可以自己随便写个网页放到这个目录,ip访问一下服务器看看配置成功没有。
Git勾子(hooks)
我们的hexo文件传到服务器的git后,需要同步传到nginx的托管目录下。这样访问网站时才会有hexo的内容,这就需要使用git hooks。
执行下面的命令,在自动生成的{自定义仓库名name}.git/hooks 目录下创建一个新的钩子文件:
1 | vim /var/repo/{自定义仓库名name}.git/hooks/post-receive |
tips:注意这是要新建一个文件,而不是用
post-update.sample这个文件。我踩了粗心大意的坑
打开文件后,加入下面的代码:
1 | #!/bin/bash |
将文件保存后,赋予该文件可执行权限:
1 | chmod +x /var/repo/{自定义仓库名name}.git/hooks/post-receive |
使用Git部署本地Hexo到远端
将服务器地址添加到受信任的站点,在本地任意目录从服务器上把hexo_static仓库克隆下来:
1 | 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签发),一般是如下几个:
1 | callmelp.online.csr |
我们需要用的是.crt和.key文件
域名解析
在域名商那边把域名解析到自己服务器的ip地址
配置nginx
添加https站点:修改 /etc/nginx/sites-enabled/default站点的配置文件(记得自己先备份):
1 | server { |