本地博客部署计划

本地博客部署计划
Jinghuashang前言
关于这篇文章的意义
从某种意义上来讲,这玩意有点费力不讨好。
首先,网上的虚拟主机平台很多,且便宜
如织音云就提供了多种种类的虚拟主机套餐,还挺实惠的,其他的暂时不了解
但这种服务平台多半都是FTP传输服务,不如vps配置好了git连接更加方便
所以有了这种frp+本地服务器搭建的方式
但是这种方式成本颇高,但比vps便宜。
准备
如果你是有这样需求的,应该至少是有编译设备的(pc或手机终端)
frpc服务商(樱花frp,Open frp等)
本地服务器
网线
系统镜像
简单的linux知识
开始
连接上你的服务器
因为命令面板是有点麻烦,所以我们采用面板来开始配置静态环境
我这里使用的是1Panel ,主要是这个是现代化UI设计(简称:好看)
1 | # RedHat / CentOS 安装脚本 |
安装成功后,控制台日志会提示对应端口号,可通过浏览器访问如下页面登录 1Panel:
1 | http://目标服务器 IP 地址:目标端口 |
选择静态网站,域名哪里随便填写,其他域名那里填写127.0.0.1:任意端口
git环境配置
创建一个名为blog的用户,用于管理Hexo项目
1 | sudo adduser blog |
给blog账号添加权限
1 | sudo vim /etc/sudoers |
切换至blog用户
1 | su blog |
配置git环境
1 | # 创建repo文件夹 |
创建git钩子
1 | vim /var/repo/hexo.git/hooks/post-receive |
写入下面内容
1 |
|
注意:tree位置就是你的网站根目录
文件变为可执行文件
1 | chmod +x /var/repo/hexo.git/hooks/post-receive |
这样配置是无法上传的,得给网站根目录添加777权限
1 | sudo chmod 777 /opt/1panel/apps/openresty/jinghuashang/www/sites/hexo/index |
添加ssh公钥
每次上传都要输入密码,非常麻烦,所以添加一个免密验证
1 | # 首先创建.ssh目录,并进入该目录 |
给hexo 配置文件添加一下
1 | - type: git |
上传
1 | hexo d |
提示
如果无法上传,基本上都是路径的权限问题。
内网穿透服务 - frp
以上传了仅供本地访问,想要外网访问就需要frp
- 推荐使用樱花Frp
windows 篇
因为都用windows了,直接就用图形界面点击下载Windows 安装程序
安装后去官网用户中心获取用户密钥
并将用户密钥复制到账户
- 访问密钥
接下来的配置相比已经挺简单了,就不一一赘述了
linux 篇
下载
点击下载你相对应的linux发行版的frpc
咱推荐直接获取下载地址,然后去你的linux服务器直接用wget
下载
1 | wget https://getfrp.sh/d/frpc_linux_amd64 -O frpc |
这样你就获取到了一个frpc
客户端,但是还不是可执行文件
1 | # 设置775权限 |
同时为了方便使用建议将frpc
放到/usr/local/bin/
目录,并且新建一个frpc的工作目录/usr/local/etc/natfrp
并且新建一个Systemd 的frpc文件,具体操作如下:
1 | # 将frpc放到/usr/local/bin/目录 |
提示
如果您希望提高安全性,降低被入侵造成的危险,请反注释下面的DynamicUser
配置项。 启用此功能将导致自动 HTTPS 等功能需要写入文件时出现不完全与教程相同的行为,请在确认您有相关能力的情况下启用。
1 | [Unit] |
执行下面的命令重载 Systemd,这样服务就配置完成了1
sudo systemctl daemon-reload
提示
请记住后续操作中用到的Unit 名称
是frpc@<启动参数>
,例如frpc@wdnmdtoken666666:12345
下面本教程将介绍一些 Systemd 的基本操作
启动/停止隧道
启动/停止隧道非常简单,使用下面的命令即可,start 是启动,stop 是停止
1 | sudo systemctl <start|stop> <Unit名称> |
提示
如果您想开启多条不同隧道,只要更换Unit 名称
中的启动参数并多次执行对应的指令即可
举个例子,开启访问密钥为 wdnmdtoken666666 的用户所拥有的 ID 为 12345 的隧道:
1 | sudo systemctl start frpc@wdnmdtoken666666:12345 |
查看隧道状态
您可以通过下面的命令查看服务状态1
sudo systemctl status <Unit名称>
举个例子,要查看上面开启的隧道状态可以使用1
sudo systemctl status frpc@wdnmdtoken666666:12345
注意
绝对不要 开启重复的隧道,这会造成出现各种不可预计的 Bug
执行多次systemctl start
是 安全 的
配置好 Systemd 后,不要 再用frpc -f <启动参数>
的形式开启隧道
如果您忘记了之前开启过哪些隧道,使用下面的命令可以列出当前运行中的隧道1
sudo systemctl list-units "frpc@*"
下图中的信息表示我们开启了访问密钥为 wdnmdtoken666666 的用户所拥有的两条 ID 分别为 12345 和 67890 的隧道
结尾
这是一个勉强有点网络知识和经验的小博主的教程,或许有些不对的地方,欢迎到评论指出错误