首先庆祝一下~~
吼姆小行星终于有了自己的域名!
不需要再翻墙访问原地址
GitHub Page 的项目会同步更新… 所以哪个都一样啦
国内的话还是推荐访问https://space.shirofune.cn/哦
记录 hexo 部署流程
github.io 访问起来很慢…所以萌生了想要把博客放在国内服务器上的想法
购买服务器…购买域名…备案…尤其是备案,真的好麻烦
但是以上都是很简单的
接下来的部署充满了摸索的过程…
我不怎么会 Nginx 和 Linux…
这些基本都是我通过搜索引擎得到的
这个过程学到了很多东西,更重要的是利用 git 上线项目的简单流程
做的配置都是最低需要的(大概)毕竟用的是 root 权限…
如果有错误..欢迎指出,在留言板或者评论区都可以~
感激不尽!
Ubuntu-Git 项目部署流程
- 更新系统
- 安装 nginx 网页服务器
- 安装 git 版本控制
- 安装 node(通过 nvm)
- nginx 配置监听文件目录
- 创建一个 git 空仓库
- 配置 git 空仓库(远程仓库)
- 配置 git/hook
- 配置 ssh 免密提交
- nginx 配置 Https
- nginx 其他配置(如二级域名)
- 配置 hexo
命令操作记录
首先,更新服务器套件
apt-get 是 ubuntu 的包管理工具
1
| apt-get update -y && apt-get upgrade -y
|
安装 nginx 网页服务器
1
| apt-get install nginx -y
|
此时,复制自己的公网 IP,放在浏览器地址栏,应该可以看到 Nginx 的默认页面
如果不能(例如阿里云 ECS),注意配置一下服务器安全组
安装 git 版本控制
安装 nvm
nvm 是一个 node 版本管理工具
1
| wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
|
安装完成之后重启一下终端
验证安装
安装 node.js
验证 node 安装
创建一个仓库目录
1 2 3
| mkdir /var/repo/ cd /var/repo/ git init --bare hexo-blog.git
|
配置 Nginx 托管目录
1 2 3
| mkdir -p /var/space/hexo sudo vim /etc/nginx/sites-available/default
|
然后将会打开 Vim
键入 i 进入编辑模式
1 2 3 4 5 6 7 8
| server{ listen 80 default_server; listen [::]:80 default_server
root /var/space/hexo index index.html index.htm }
|
ESC 退出编辑模式
shift+: wq 保存编辑
重启 Nginx 服务
1
| sudo service nginx restart
|
创建 git 钩子
1 2
| vim /var/repo/hexo-blog.git/hooks/post-receive
|
在这个文件里添加两行代码
指定 git 工作树(源代码)和 git 目录(配置文件)
1 2 3
| #!/bin/bash
git --work-tree=/var/space/hexo --git-dir=/var/repo/hexo-blog.git checkout -f
|
保存退出,将该文件设置为可执行文件
1
| chmod +x /var/repo/hexo-blog.git/hooks/post-receive
|
配置 ssh 免密提交
在/root/.ssh 中 有一个 authorized_keys 的文件,修改它
1 2
| cd /root/.ssh vim authorized_keys
|
在自己的电脑上,生成 ssh_key
一般在 C:\Users\用户名\.ssh 文件中
打开.pub 文件,将其中的内容复制进去即可
Nignx 配置 HTTPS 和域名前缀
在域名解析控制台,找到自己的证书详情页面
解压后,会有一个 Nginx 的文件夹,里面有两个文件
把这两个文件放到服务器的/etc/nginx/conf
目录下
配置 nginx
1
| sudo vim /etc/nginx/sites-available/default
|
找到 server_name
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| server { listen 443 ssl; server_name space.shirofune.cn; ssl on; ssl_certificate /etc/nginx/conf/1_space.shirofune.cn_bundle.crt; ssl_certificate_key /etc/nginx/conf/2_space.shirofune.cn.key; root /var/space/hexo; index index.html;
location / { try_files $uri $uri/ =404; } } server { listen 80; server_name shirofune.cn; rewrite ^(.*)$ https://$host$1 permanent; }
|
本地配置 hexo
1 2 3 4 5 6 7
| deploy: - type: git repo: branch: master - type: git repo: root@ip:/var/repo/hexo-blog.git branch: master
|
补充一些
Nginx 设置自定义 404 页面
博客项目托管到服务器上之后发现了一个小 bug
404 页面是 Nginx 默认的那个白底黑字儿 404
好丑啊
所以找了找设置 Nginx 自定义 404 界面的方法
1 2
| cd /etc/nginx vi nginx.conf
|
1 2 3
|
fastcgi_intercept_errors on;
|
然后设置 server,指定 404 错误页面
1 2
| cd /etc/nginx/sites-available vi default
|
1
| error_page 404 = /404.html;
|
重启服务
1
| sudo service nginx restart
|