然而实际上是前端服务器做了一层代理,把http://localhost:8080/api/user/login
这个接口代理到https://dev.xxx.tech/user/login
。这对前端开发者而言是无感的。
简单总结就是:反向代理隐藏了真实的服务端;相反地,正向代理隐藏了真实的客户端,类似kexueshangwang这种。
debug痛点
=======
问题来了,假设我们正在feature
分支开发需求,这个时候上头通知要即时排查和解决一个生产bug,假设生产环境域名为https://production.xxx.tech
。
我们一般会stash
代码,然后切fix
分支,修改target
的值为"https://production.xxx.tech"
,然后重新运行npm start
重启开发服务器接入生产环境,静静等待,放空自己…
这个时候我们就会幻想“唉,要是不用等这么久就好了!”
是的,其实很多时候,一个bug并不复杂,可能解决bug只要1分钟,然而我们切换环境重新运行开发服务器就花了1分钟(大多数情况可能超过这个时间)。那么如何解决这个问题?
代理层解耦
=====
是的,有的同学已经想到了,只要把代理服务器抽离出来,问题便可以得到解决,我不再需要把前端编译过程和服务代理目标捆绑在一起。在生产环境,这种Nginx转发对大多数人而言早已是熟门熟路,然而很少有人