我开发了一个HTTP代理,使用com.sun.net.httpserver.HttpsServer
和HttpURLConnection
进行HTTPS-> HTTP转换。不幸的是,它每秒只能处理5个小的HTTPS POST请求。所有其他请求无法连接到代理。
我在同一台服务器上使用SSL + tomcat apache,它处理50个HTTPS请求/秒。没有apache的Tomcat处理50个HTTP请求/秒,所以带有SSL的apache根本不会减慢他的速度。如果我使用我的com.sun.net.httpserver.HttpsServer
,它会使tomcat放慢10倍!我以这种方式使用它:
HttpsServer server = HttpsServer.create(new InetSocketAddress(config.getInPort()), 0);
server.createContext("/https", new HttpProxyHandler(config));
server.setHttpsConfigurator(new HttpsConfigurator(SSLContext.getDefault()));
server.setExecutor(null);
server.start();
处理程序仅通过HttpURLConnection
将收到的请求发送到另一个http网址。
为什么com.sun.net.httpserver.HttpServer
的表现如此糟糕?是否有HttpsServer
的任何效果统计信息?我需要非常性能的服务器。如果我只是从SSL套接字读取请求并写入TCP套接字怎么办?它是否适合HTTPS请求处理?