部署Blog到Ubuntu

部署Blog到Ubuntu服务器并启用HTTPS
一、本地安装Git后注意事项
【git】报错unsafe repository xxx is owned by someone else解决方法
可以通过加通配符为*,忽略所有文件夹。需要注意,该处理方法一般适用于只有本人一个用户使用的电脑,确保无其它用户,否则存在安全问题。见下方详述。
1 | git config --global --add safe.directory "*" |
二、服务器端操作
参考链接:https://www.jianshu.com/p/16b89f4f7136
1. 安装Git和Nginx
Git 用于版本管理和部署,Nginx 用于静态博客托管。
1 | sudo apt-get update |
2. 创建Git仓库
在/var/repo/下创建名为hexo_static的裸仓库。使用如下命令:
1 | sudo mkdir /var/repo/ |
3. 配置Nginx托管文件目录
创建/var/www/hexo目录,用于Nginx托管,修改目录所有权和权限。
1 | sudo mkdir -p /var/www/hexo |
随后修改Nginx的default设置,使root指向hexo目录.
1 | sudo vim /etc/nginx/sites-available/default |
注意一定要加sudo,否则会提醒default是只读文件.
修改文件中对应的项
1 | ... |
Vim的操作方法比较特殊,可以在网上查查
重启Nginx服务,使得改动生效
1 | sudo service nginx restart |
4. 创建Git钩子
不清楚钩子是什么
在自动生成的 hooks 目录下创建一个新的钩子文件:
1 | vim /var/repo/hexo_static.git/hooks/post-receive |
在该文件中添加两行代码,指定 Git 的工作树(源代码)和 Git 目录(配置文件等)。
1 | !/bin/bash |
保存并退出文件,并让该文件变为可执行文件。
1 | chmod +x /var/repo/hexo_static.git/hooks/post-receive |
5. 修改Hexo的默认配置
在站点config.yml中修改博客的地址url
1 | # URL |
6. 通过Git部署
再编辑Hexo的config.yml文件,找到Deployment,修改为
1 | deploy: |
最后记得安装Hexo部署到Git仓库的包.
1 | npm install hexo-deployer-git --save |
于是就可用hexo d命令来部署了。大功告成。
三:开启https
参考链接:https://developer.aliyun.com/article/761236
备注:配置目录在 /etc/nginx/sites-enabled下
1.配置SSL证书
我这里用的是有限期一年的ssl证书 腾讯云nginx根据域名下载两个文件 1.pem 1.key
2.配置ca证书 :
2.1配置文件上传
进入nginx的安装目录/etc/nginx/,增加cert/文件夹,把刚刚下载的两个文件上传到cert/文件夹中。
2.2 配置nginx文件
在/etc/nginx/sites-enabled/下,增加jessicagracewell.top文件。内容如下:
说明:下面的配置是对443端口和80端口进行监听,443端口要启用ssl。监听443端口的server配置可以仿照上面ca认证页面的nginx配置示例进行配置。
1 | server { |
2.3 检查并启用nginx配置
配置完成后,检查一下nginx配置文件是否可用,有successful表示可用。
1 | nginx -t // 检查nginx配置文件 |
配置正确后,重新加载配置文件使配置生效:
1 | nginx -s reload // 使配置生效 |
至此,nginx的https访问就完成了,并且通过rewrite方式把所有http请求也转成了https请求,更加安全。
如需重启nginx,用以下命令:
1 | service nginx stop // 停止 |






