Java不到10行代码做个简单的反向代理服务器(一)

从最简单的考虑我们只需要:1.一个servlet容器。2.处理请求转发的servlet。
这里使用内嵌Jetty + smiley-http-proxy-servlet。

pom.xml


    
        org.eclipse.jetty
        jetty-server
        9.4.11.v20180605
    
    
        org.eclipse.jetty
        jetty-servlet
        9.4.11.v20180605
    
    
        org.mitre.dsmiley.httpproxy
        smiley-http-proxy-servlet
        1.10
    
  

App.java

public class App {
    public static void main(String[] args) throws Exception {
        Server server = new Server(8080);
        ServletContextHandler servletContextHandler = new ServletContextHandler(server, "/proxy");
        
        HttpServlet proxyServlet = new ProxyServlet();
        ServletHolder servletHolder = new ServletHolder();
        servletHolder.setServlet(proxyServlet);
        servletHolder.setInitParameter("targetUri", "https://www.baidu.com");
        servletContextHandler.addServlet(servletHolder, "/baidu/*");
        
        server.start();
    }
}

然后来测试一下
浏览器输入
http://localhost:8080/proxy/baidu
嗯跳到了百度首页,
输入http://localhost:8080/proxy/baidu/balabala
还是百度的页面。

站在巨人的肩上我们只需要不到十行代码就可以实现一个简易版反向代理服务器。
嗯下一步打算扩展成可配置,代理多个地址的。

你可能感兴趣的:(Java不到10行代码做个简单的反向代理服务器(一))