Ubuntu 20.4 + Hexo + Nginx 搭建公网博客
Contents
一. 本地 Linux 搭建 Hexo 博客环境
本地Linux:
安装hexo:
1 | #方法一: |
用 hexo 把 md 转 html:
1 | #创建 hexo 博客的目录: |
二. Git 通道的配置
本地 Linux :
1 | #安装git |
远程 Linux :
- 创建 Git 裸仓
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15#安装git
root@localhost:~# apt install git
#创建用户huae (创建完以后在 /home 目录下有 huae 文件夹)
root@localhost:~# adduser huae
#切换为 用户huae:
root@localhost:~# su huae
#创建裸的(不带工作区的)git 仓库:
huae@localhost:~$ git init --bare /home/huae/huae.git
huae@localhost:~$ ls -l /home/huae
total 4
drwxrwxr-x 7 huae huae 4096 May 29 16:35 huae.git
可见 huae.git 的所属用户和用户组都是 huae。 如果创建huae.git 时是root 身份,可用 chown -R huae:huae /home/huae/huae.git 更改huae.git 的所属用户和用户组为huae。
- 配置 Git 工作目录
该目录用于存放提交上来的 html 等文件,后续Nginx 将该目录html 呈现在公网。
1 | root@localhost:~# mkdir -p /var/www/huaehexo |
往 post-update 中写入 git --work-tree=/var/www/huaehexo --git-dir=/home/huae/huae.git checkout -f
- 添加 SSH 信任
创建authorized_keys文件,把 “本地Linux 的” id_rsa.pub 添加到此 authorized_keys,该id_rsa.pub 对应的用户就能提交 git 内容到本远程主机。1
2root@localhost:~# mkdir -p /home/huae/.ssh
root@localhost:~# vim /home/huae/.ssh/authorized_keys
网站搭建好后出于安全目的,禁止 本地 Linux 通过 shell 登录 远程 Linux 在/etc/passwd
中找到类似 huae:x:1002:1002:,,,:/home/huae:/bin/bash
改为 huae:x:1002:1002:,,,:/home/huae:/usr/bin/git-shell
本地 Linux
配置 hexo 博客使其能自动推送到 远程Linux的git仓库
1 | root@localhost:~# vim /var/www/huaehexo/_config.yml |
写入内容:
1 | ## Docs: https://hexo.io/docs/one-command-deployment |
hexo 博客文件夹中安装 部署工具:
1 | root@localhost:/var/www/huaehexo# npm install hexo-deployer-git --save |
部署到远程 Linux:
1 | root@localhost:/var/www/huaehexo# hexo -d |
三. 公网 Linux 配置 Nginx 服务
远程 Linux
- 安装 nginx
1
root@localhost:~# apt install nginx
- 配置 nginx:
1
root@localhost:~# vim /etc/nginx/sites-enabled/default
填入:
1 | server { |
并且配置文件 /etc/nginx/nginx.conf
中 http { }
花括号里要填入include /etc/nginx/sites-enabled/*;
启动nginx:
1 | root@localhost:~# service nginx restart |
配置完以上的后,浏览器地址栏输入 http:// (远程 Linux 的ip 地址)
应该就能访问博客网页了。如果不能,检查一下远程 Linux 虚拟机/VPS/ECS 的(网络)安全组策略,是否已经开放 “http + 80 端口访问权限” , 另外是ubuntu自身的防火墙,可以搜索 iptables 如何开放 80 端口。