本地博客部署计划
本地博客部署计划
Jinghuashang前言
关于这篇文章的意义
在互联网服务的选择上,确实存在多种方案,各有利弊。虚拟主机平台因其价格便宜、配置简单而受到许多用户的青睐。例如,织音云提供了多种类型的虚拟主机套餐,这些套餐通常价格实惠,适合预算有限或者需求不高的用户。虚拟主机通过FTP进行文件传输,对于一些简单的网站或者应用来说,这已经足够使用。
然而,对于那些追求更高自定义性、灵活性和便捷性的用户来说,传统的FTP传输可能显得不够高效。这时,VPS(Virtual Private Server,虚拟私有服务器)搭配Git进行版本控制和部署的方式会更加方便。VPS提供了更高的权限和更灵活的配置选项,允许用户按照自己的需求进行服务器配置和管理。
FRP(Fast Reverse Proxy)加上本地服务器搭建的方式是另一种选择。这种方式通过在内网穿透工具FRP的帮助下,使用本地服务器来提供服务,可以实现一些特殊需求,比如在本地服务器上运行一些特定的服务或应用。虽然这种方式在成本上可能高于虚拟主机但低于VPS,它在某些场景下可能是一个折中的解决方案。
总的来说,选择哪种服务取决于用户的具体需求、预算以及对技术操作的熟悉程度。虚拟主机适合入门级用户和小型项目,而VPS和FRP+本地服务器搭建则更适合那些需要更多控制权和定制化服务的用户。每种方案都有其优势和局限性,用户需要根据自己的实际情况做出选择。
准备
如果你是一个有特殊需求,例如需要运行自己的服务或应用,并且希望这些服务能够通过互联网访问的用户,那么你可能需要具备一些基本的技术设备和知识。以下是你可能需要准备的一些条件和技能:
- 编译设备:无论是个人电脑(PC)还是智能手机,你需要一个能够进行编译和运行服务的设备。这个设备需要足够的处理能力和内存来满足你的服务需求。
- FRP服务提供商:FRP(Fast Reverse Proxy)是一种内网穿透工具,它允许外网访问你本地服务器上的服务。你可以选择一个FRP服务提供商,如樱花FRP、Open FRP等,来帮助你实现这一功能。
- 本地服务器:这可以是一台物理服务器或者一个虚拟机,用于运行你的服务或应用。它需要足够的硬件资源来支持你的服务运行,并且需要安装一个合适的操作系统。
- 网线:用于连接你的本地服务器和路由器,确保服务器能够接入互联网。
- 系统镜像:这是安装操作系统的预配置文件。你需要根据你的服务器硬件和需求选择合适的系统镜像。
- Linux知识:为了配置和管理你的服务器,你需要具备一些基本的Linux知识。这包括了解如何使用命令行界面、管理文件系统、安装软件包以及进行基本的网络配置。
通过这些准备,你将能够搭建一个本地服务器,并通过FRP服务将其暴露到互联网上,从而实现远程访问和管理。这种方式虽然需要一定的技术知识和初始设置,但它提供了高度的灵活性和控制力,允许你根据个人需求自定义服务。
开始
连接上你的服务器
因为命令面板是有点麻烦,所以我们采用面板来开始配置静态环境
我这里使用的是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 的隧道
结尾
这是一个勉强有点网络知识和经验的小博主的教程,或许有些不对的地方,欢迎到评论指出错误