出发点
搭建一个 web 服务之后,部署到哪里一直有比较定向的思维,也是就到公有云提供商买一台机器发布。如果作为新用户,可以享受一些优惠的价格,但是一旦变成熟客,便有价格的不适。于是就想着在家里使用闲置的机器,搭建可以公开访问的 web 服务。
思路
想起一道非常经典的面试题:当你在搜索栏里 Google 的时候,发生了什么,详细的讲一下。
- 使用未回收的电子垃圾扎出来的一台小机器
- 在机器上部署 web 服务
- 使用 Nginx 进行请求到达本机后的转发
- 家里有 2 层路由转发,对路由器做好 Port Forward,保证隧道的流量可以转发
- 让互联网知道这里有一个 web 服务,这是最复杂的一点
TODO
- 一旦公开访问,就会遭遇到未知世界的探测甚至攻击,最好机器能与其他家用设备网络、硬件隔离
- 互联网到隧道入口的连接非常稳定,但是进入隧道后到达家里的 web 服务就不是非常稳定了,暂时可以靠定时重启隧道链接保证不会一直挂着。也可以通过购买负载均衡等等增值服务提高稳定性。不花钱的前提下,看了一下增值服务的介绍,大概就是做好监控,断链恢复,是个 DIY 的好故事。