0%

树莓派 - frp+nginx搭建个人博客

树莓派是在一个内网环境中,如果想要在外网访问,可以通过以下2种方式实现:

  • 硬件穿透,这里不进行讲解,自行搜索零遁了解,
  • 软件穿透,比较成熟的方案有花生壳或者蒲公英,但这两种方案都一些缺点:限制流量,限制带宽,收费高

其他的无所谓,但收费高是绝对接受不了的,所以我决定自己搭建内网穿透,首先需要购买一台带有公网id的服务器,经过一下午的多维度对比,最终我买了一台50块左右的阿里云服务器(轻量应用服务器)

内网穿透

内网穿透在frp - 内网穿透搭建这边篇文章中有详细的搭建过程,这里只给出简单的配置和原理

Server端

1
2
3
4
5
6
7
8
9
[common]
bind_port = 7000
dashboard_port = 7500
token = xxxxx
dashboard_user = xxxx
dashboard_pwd = xxxx
vhost_http_port = 80
vhost_https_port = 443
subdomain_host = juneleo.cn

Client

1
2
3
4
5
[blog http]
type = http
local_ip = 127.0.0.1
local_port = 8000
subdomain = www

这里有2个细节

网站部署

博客使用了hexo,可以参考hexo 使用这边文章,我这里直接使用了nginx进行了部署

1
2
3
4
5
6
7
8
   server {
listen 8000;
server_name 127.0.0.1;
location / {
root /root/blog;
index index.html;
}
}

代码部署

代码仓库是搭建在树莓派中的,所以这里有3个问题需要解决

  • git仓库搭建
  • 代码提交
  • 代码部署

git仓库搭建

1
2
3
git init --bare blog.git
root@raspberrypi:~/projects# ls
blog.git

代码提交

代码提交是通过ssh提交的,所以我们还frp进行穿透

ssh frp配置

1
2
3
4
5
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 7003

代码提交

1
git remote add origin ssh://root@39.106.87.9:7003/root/projects/blog.git
  • root 树莓派root用户
  • 39.106.87.9为服务器的ip地址
  • 7003为服务器的端口,这个端口会映射到树莓派的22端口
  • /root/projects/blog.git 为树莓派的git仓库目录

代码部署

代码提交到仓库后,我们需要将代码checkout到指定的目录,这里使用了hooks中的post-update

1
2
3
vim /root/projects/blog.git/hooks/post-update

git --work-tree=/root/blog --git-dir=/root/projects/blog.git checkout -f