我们在用户内网中部署了我们的服务器B,B通过非固定公网IP访问外网,用户机可以使用B的服务,但用户无法连接外网。
情况就是,B 可以ping A,但A不能 ping B。
然后用户在外网就不能使用这个B的服务了,那只能用我们在公网的服务器A提供的服务。
然后现在面临的问题是,如何更好地保持AB服务器的同步。
有设想过人肉跑点,但是点太多,一天跑两个,一个月不用做其他活。
自问自答
目前经过一段时间的实验,已经基本达到想要的效果。
由于项目使用的是MongoDB2.x,有一个叫MongoBackup的增量同步工具可以通过oplog来备份增量内容。通过B来发起ssh与scp到A,达到数据同步的效果。
由于公网无法ping B,因此代码部署上使用webhook不可行。只能是在B中设置一个服务,监听某个端口的请求,然后由内网的工程师发送请求,B响应后跑sh脚本完成部署。
docker可以做这个,自动同步,