smiley-http-proxy-servlet 反向代理

背景

 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

 简单来说,你的反向代理服务器会接收请求,但其自身不处理该请求,而是对请求经过一些处理,例如添加日志、缓存、身份验证等服务,然后再将请求转发到相应的应用服务器中进行处理,最后将处理结果返回。

 HTTP-Proxy-Servlet是基于Filter进行服务代理,只需要进行相关的配置之后,就能进行服务代理,同时核心文件只有2个,容易理解和进行改动,但是存在的问题是只能代理一个url,不能代理多个不同的url,这部分是可以基于源码进行改造。


源码目录

smiley-http-proxy-servlet 反向代理_第1张图片
http-proxy-servlet
  • http-proxy-servlet的源码文件非常简单,只有两个文件。
  • ProxyServlet.java重写了spring的HttpServlet,参数初始化都在ProxyServlet初始化。
  • 针对改造我们只需要改造ProxyServlet.java文件即可。


源码改造

  • http-proxy-servlet的代理配置针对代理URL只能定位到一个URL,如果想内部逻辑判断转发多个URL只能进行代码改造。
  • 核心改造逻辑在于改造init()方法、initTarget()方法、service()方法。
  • initTarget()方法内部解析spring的配置初始化核心对象。
  • service()方法内部根据逻辑判断重定向逻辑。

你可能感兴趣的:(java,运维,web.xml)