简介
此文算是一些书签吧,全是链接,有的是从阮一峰老师的每周分享中看来的,没时间看,先扔在这,等有时间了,再来拜读,有的就是查资料的时候找到的,觉得不错,分享给大家。
给朋友家用树莓派做了一个小web页,用来让他在外边用手机访问家里的移动硬盘,但是发现他家的光猫wan口虽然是公网IP,但却没有端口映射/DMZ功能,就想找找内网穿透的方案,花生壳之前用过,垃圾的一比,又得花钱,作为一个程序员,怎么能用这么low的方案呢?
找来找去,内网穿透的开源方案倒是不少(如ngrok,frp等),但都有性能瓶颈,也就是说:
如果在光猫可以正常映射的情况下,直接访问家里的服务器,理论带宽应该为家中网络的上传带宽
而如果用内网穿透,理论带宽就是公网服务器的上传带宽
再加上国内的服务器带宽实在太贵,所以想找个合适的方案,最终看到了lvs/tun模式,理论上讲,lvs搭配ddns,应该能实现我想要的功能,所以折腾一下,哪怕不成功,记录一下失败的原因也好。
lvs一般是作为负载均衡服务来使用的,但我看了看它的TUN模式,就是IP隧道模式,这个模式提到了三角通信的概念,就是说,
用户将请求发到公网服务器,经过服务器封装,发到业务服务器(这里的业务服务器就是家中的树莓派)
业务服务器收到请求,将响应直接发送给用户
这样做的好处就是:公网服务器只作为转发请求的通道,而请求数据一般都不会太大,1M的小水管感觉就够了,而响应则是家里的树莓派发出,无需走公网服务器,这样的话,理论带宽就是家中的上传带宽,很完美不是么。
此文参考了以下内容
负载均衡之LVS TUN模式(IP隧道)
10. LVS: You can’t map (or rewrite) ports with LVS-DR, LVS-Tun or localnode (but you can with iptables)
LVS TUN
LVS负载均衡之LVS-TUN实例部署(案例篇)
LVS-TUN(Virtual Server via IP Tunneling)原理说明与配置用例
LVS负载均衡之基本介绍(介绍篇)
使用LVS+TUN搭建集群实现负载均衡
感谢以上作者提供的帮助,想看原文请自行跳转
推荐一个好用的进程管理程序,再也不用坑爹的screen
跑程序了。
先放官方介绍:supervisor介绍(英)
总结一下:
Python
开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon
,并监控进程状态,异常退出时能自动重启。 fork/exec
的方式把这些被管理的进程当作supervisor
的子进程来启动,这样只要在Supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。 本文根据以下博客部分观点加上作者自己的一点看法汇聚而成,感谢这些作者。