想在外网调用内网的接口,请问正确的姿势是什么?
上周不是有件小米实习生私自将公司内网端口映射到公网的新闻嘛,当时看了没啥感觉,然后周末跟旧同事叙旧,才想起来类似的事情我也干过啊,简直心有余悸。
当年毕业没多久,在实习的工作一直干到了前端部门的主管,遇到个客户表示没做过互联网项目,以前都是在内网折腾。由于数据比较私密,所以他们拷贝了测试数据库给我们前后端进行开发,等上线前再部署过去。后来我们这边都开发测试好了,代码发过去。他们说 Java 的东西还好,前端的东西怎么看文档也不会用,QQ 远程协助也不肯,非要我们立马外派一名前端出差到当地协助上线。
很明显这件苦差只能我来扛了,客户催得也急,叫我马上买了第二天早上六点的飞机出发,下飞机之后还打了一个多小时的出租车才来到客户那个鸟不拉屎的科技园,总算整明白了,客户长期做硬件和数据业务,公司里根本没有前端,只有运维测试和后端,以前的项目都是后端随便 jq 糊上去的。问了下他们的运维,node npm 没听过,docker nginx 不会用,以前的项目都是陈年老 SSH,jar 直接跑到端口上给内网用,听得我直挠头。
不过我看他们的生产环境好像还算规范,生产环境不接外网,物理机柜放在冷 /热通道封闭系统内,要操作生产环境只能在全监控的操作室内进行(操作室附近还屏蔽了手机信号,搞不懂为什么)。不过服务器的 RHEL 系统上连 Nginx 都没有,幸亏我还有一点 Linux 基础,跑到园区外用 Android 上网下载了源码自己编译,总算在生产环境把前后端服务都跑起来了。
万万没想到的就是部署成功,他们用了之后,列出了长长的一个改进清单,说是什么我来都来了现场改肯定比远程方便,死活不给我走,逮住我 996 没日没夜地改,我公司那帮孙子又打死不肯来支援,干了两周一看,妈呀清单不减反增。我说顶不住啊,重要问题都给你改了,非紧急需求的我回公司再弄,客户还是不让走,说我在公司调用不了他们的内网 API,我差点就在操作室晕过去