什么是透明代理
透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改变你的请求报文,并会转发至真实I服务器。
为什么需要透明代理
案例1
监控某个应用,甄别非法返回值。
案例2
对应用的url进行鉴权,让不合法的url实现跳转。
以上两个案例如果按照传统做法肯定要在特定应用中的http请求管道中增加filter,拦截请求和响应报文,这种做法侵入性太强,如果应用比较多,又是由不同的语言开发的,想完成它是一件比较困难的事情,做的不好还可能影响到原有业务逻辑。这个时候透明代理就显得尤为重要:进程外架构,语言无关性,流量透明化,完全契合了现阶段火热的服务网格的理念,是解决同类问题的最佳方式。
实现透明代理的选择-Envoy
Envoy是一个现代的为面向服务架构而设计的七层代理和通讯总线,该项目的设计初衷是:
对于应用程序而言,网络应该是透明的,当发生网络和应用程序故障时,能够很容易定位出问题的根源。
Envoy 的核心是一个 L3/L4 网络代理,结合防火墙技术就可以充当一个透明代理,拦截入栈和出栈流量,实现完美定制网络流量和应用。
Envoy实现透明代理的两种方式
为了更好的对比流量拦截前后,连接的建立方式,我们首先远程请求10.1.44.202:8001,连接状态如下: