前言

作为技术佬,有着这么多年的折腾经验,想必大家总有把它们分享出来的想法,于是个人博客等私人站点应运而生。然而,想要搭建一个完全私有的个人博客其实并非易事——大部分人在家庭内并不具有托管网站的硬件和网络条件,于是只得在IDC维护的云服务器上建站。但是,这些云服务器普遍配置较低,如果想要存储稍多的资料或是访问请求稍多就会性能吃紧。高配的云服务器通常价格高昂(月付几十美元或更多),一般的业余爱好者难以承受。并且,由于IDC有着硬件管理权,在云服务器上存放的资料随时可能被其盗取或修改,甚至可能因为忘记续费机器而被删除。于是,包括博主的不少人选择在在家自建IDC打造私人服务器。通过捡垃圾合理搭配二手电脑配件,玩家们可以组装出价格亲民、性能较佳的服务器,并且完全控制它们,性价比云服务器高了不少。然而,在家自建服务器的缺点不只是需要花费大量精力构建和维护,网络环境也是个大问题。本文将介绍一种结合低价云服务器和家庭内网服务器的一种建站方案,无需家庭宽带公网IP。


材料准备

一台云服务器(不进行后端存储和运算,可以使用低价的流量型vps,但是必须有80端口可用的公网IP),一个支持内网穿透的反向代理软件 (如frp、STUN),一个接管云服务器80端口的反代服务器 (如Nginx、Apache,最好配套证书管理系统使用),托管网页后端的家庭服务器,以及一个DNS服务提供商和域名(如使用CloudFlare托管NameSilo的域名,前期配置工作本文不再赘述)

原理阐释

在本文的方案中,通过一系列的配置,网站的访问者将先通过DNS解析访问到云服务器,而云服务器接收到请求后会通过内网穿透隧道访问到位于内网的家庭服务器,并由家庭服务器负责处理请求。并且,如果你的云服务器有一定的存储空间,你可以选择通过反代服务器来缓存一些网站的内容,加速客户访问网站的速度(即CDN加速)。整个过程可以被简称为反向代理。

实战操作

0x01 安装内网穿透

本文以在1Panel下安装frp服务端和客户端为例。

服务端安装

登录云服务器,来到1Panel的应用商店,安装frp服务端应用,并按照提示填入信息进入配置

frp服务端安装选项

此时服务端的frp就算配置好了。

客户端安装

与服务端类似,我们进入家庭服务器上的1Panel的应用商店,找到“frp客户端”应用并安装,按照下图提示进行配置

frp客户端安装选项

此时我们在“已安装的应用”里找到“frp客户端”,并点击“服务端口”按钮,进入dashboard。接下来在面板左侧找到“Configure”选项卡并点击,进入frp客户端的配置界面。接下来根据下图提示进行配置。

dashboard配置

修改完配置后按Upload键上传更改并在应用商店内重启应用,内网穿透即生效。

0x02 配置反代服务器

在1Panel环境里,OpenResty(一个基于Nginx开发的网页服务器)是面板默认的网站引擎,故本文使用这个工具进行反代演示。

安装OpenResty

相信此部分对于有建站或者前端开发经验的各位都不陌生。在1panel里,openresty的安装过程与其他应用大同小异并且没有要在安装时就配置的部分,本文也因此不再赘述这一过程。

配置OpenResty

进入面板左侧的“网站选项卡”,点击“创建”按钮并选择“反向代理”,并按照下图配置。

网站创建配置

此时你的网站域名应该已经配置好,博主这里提供一个CloudFlare的示例(位于CF面板的DNS选项卡)。

CF的DNS配置

接着进入刚创建的网站的配置界面,在这里你可以根据自身需求对反代层进行进一步的配置。博主在这里讲解一下这些选项卡的对应功能。

网站配置的GUI

域名设置

在这里你可以添加一个或多个分配给网站的域名。

网站目录

可以由此进入网站的文件目录并进行修改。

默认文档

托管静态网页相关的功能,对于反代无效。

流量限制

可以在这里对于网站进行流控,防止访客太多挤爆带宽或者消耗过多流量,也可以一定程度上防御DDos攻击。软件在这里提供了多种预设,分别对应不同种类的站点,对于一般用途选择“论坛/博客”即可。

流量限制选项卡

反向代理

在这里可以给一个站点实例配置多个反代,支持通过前端路径索引多个后端。这里也可以开启反代缓存(即CDN),在加速网站访问速度的同时会消耗额外存储空间。由于我们在创建时就已经配置了反代,这里的设定可以不用更改。

密码访问

对于限制外部访问的私密站点,这里提供一个账密选项。(注:对于非网页交互式的HTTP服务,加上账密后可能导致服务不可用,需谨慎使用)

HTTPS

提供SSl/TLS证书的配置选项,和网站选项卡里的“证书”模块联动。如果各位有申请并配置了证书,建议开启此选项,以提高连接安全性。

HTTPS配置示例

伪静态、防盗链、重定向和其他

跟我们目前的配置关系不大。其实是懒得写了

至此,整个建站的网络部署结束。

结果参考展示图

结语

此方案在达到目的的同时也有显著缺点。首先,由于反向代理的存在,访问网站的延迟将会是家庭-云服务器与云服务器-客户端之和,如果云服务器在海外,访问速度会显著减慢。在反代层对网站进行缓存可以一定程度的缓解这一点。然而,由于网络结构复杂,此方案的连接性可能受到客户端到云服务器、云服务器到家庭服务器的连接性以及云服务器和家庭服务器的自身稳定性的影响,不确定因素较多,因此我也仅推荐个人搭建博客使用。

最后修改:2025 年 08 月 12 日
如果觉得我的文章对你有用,请随意赞赏