该文章介绍了作者如何利用WebRTC技术,结合WebSocket信令服务器、TURN服务器和HTTP代理,在本地无公网IP环境下实现个人项目的部署,并以草啦网(免费SSL)为例,展示了手动申请SSL的主要功能。作者选择本地部署是为了降低云服务商高昂的硬盘成本,并提及未来计划增加基于域名的CNAME解析实现自动化API接口。文章详细阐述了采用WebRTC的必要性,并展示了其低功耗的迷你主机配置,为有大规模存储需求或希望实现项目本地化部署的用户提供了参考。
🚀 **本地化部署的驱动力:** 作者选择在本地服务器部署个人项目,主要是为了规避云服务商高昂的硬盘成本,尤其适合有大量存储需求的应用。文章提到,本地服务器的硬盘成本远低于云服务,且计划利用本地NAS进行数据备份,显示了对成本效益和数据安全性的考量。
🌐 **WebRTC与通信架构:** 文章核心技术是WebRTC,用于在缺乏公网IP的本地环境中实现数据传输。它与WebSocket信令服务器、TURN服务器(用于中转)和HTTP代理(连接Google服务)协同工作,构建了一个完整的通信链路,解决了公网访问难题。
💡 **草啦网的实践与未来规划:** 以草啦网(免费SSL)作为试点项目,作者已实现了手动申请SSL的主要功能。未来的计划包括通过基于域名的CNAME解析实现自动化API接口,进一步提升部署的便捷性和自动化程度。
🖥️ **低功耗迷你主机配置:** 作者展示了其用于部署的迷你主机配置:N3450 CPU、4GB DDR3L内存、128GB硬盘。这款低功耗(待机2-3瓦)的X86小主机不仅成本低廉(180元购入),且能耗极低,甚至可以用充电宝供电,显示了作者在硬件选择上的精打细算和对能源效率的重视。
🔋 **能源效率与UPS设想:** 设备的低功耗特性使其能够长时间运行,作者甚至设想未来为其配备UPS(不间断电源),以应对潜在的断电风险,进一步保障项目的稳定运行。这种对细节的关注体现了作者对项目稳定性的追求。
之前是使用 layui 写的界面不是那么友好,现在直接使用 VUE 和 AI 来写,并由原来纯 http 协议改为 webrtc ,现在只完成了手动申请 SSL 的主要功能,后面再增加基于域名的 CNAME 解析接管实现自动化 API 接口,
目前主要是以下配置或技术:
websocket 作为信令服务器, webrtc 作为主要的数据传输通道, turn 服务器作为无法建立直连时的兜底中转, http 代理作为本地服务器连接 google 的通道, 本地迷你主机作为服务器(低功耗), 本地 NAS 作为数据备份。
为什么要搞这么麻烦?
因为要考虑到以后自己个人项目要全部放到本地服务器上,同时由于本地没有公网 IP ,更没有固定的公网 IP ,所以使用 webrtc 是一个折中的方案,这个网站是用来试点改造的小项目。 云服务商的硬盘价格很贵,想要存放大量的文件成本受不了。本地服务器增加硬盘就便宜多了,特别适合有存储需求量大的网站或应用。为什么不在 NAS 上部署,是因为 NAS 功耗有点高不想 24 小时开机,如果以后业务大再考虑了
服务器配置与谍照
CPU: N3450 、 内存: 4G DDR3L 、 硬盘: 128G
海鲜市场上花费 180 巨资淘来的,以后再考虑升级内存和硬盘了(预算超支),本想买个 ARM 的 OECT ,后来看到这个 X86 小主机就改变主意了,主要待机功耗和 OECT 一样都是 2-3 瓦 左右(比很多路由器功耗低),跑个网站基本不占什么资源,用两万毫安的充电宝 PD 诱骗 12V 都能供电一天,以后考虑弄成 UPS 。
